一种方法是从 QDoubleSpinBox 继承并在此伪代码中覆盖相应的方法,如下所示:
主文件
#include <QDoubleSpinBox>
#include <QApplication>
class MySpinBox : public QDoubleSpinBox
{
Q_OBJECT
public:
explicit MySpinBox(QWidget *parent = 0) : QDoubleSpinBox(parent) {}
double valueFromText(const QString & text) const
{
QString valueText = text;
valueText.chop(1);
valueText.replace("°", ".");
return valueText.toFloat();
}
QString textFromValue(double value) const
{
QString valueText = QString::number(value);
valueText.replace(".", "°");
valueText.append(".");
return valueText;
}
};
#include "main.moc"
int main(int argc, char **argv)
{
QApplication application(argc, argv);
MySpinBox mySpinBox;
mySpinBox.show();
return application.exec();
}
主程序
TEMPLATE = app
TARGET = main
QT += widgets
SOURCES += main.cpp
构建并运行
qmake && make && ./main
免责声明:尽管它看起来像一个编译代码,但它不起作用,但显示了这个概念。