我想以12°15°
的格式在对话框中输入温度为此,我采用了QDoubleSpinBox小部件,但无法像上面那样设置文本。
我试过以下:
degree_sign= u'\N{DEGREE SIGN}'
temperature = QDOubleSpinBox()
temperature.setSuffix(degree_sign)
并得到12.15°
我认为valueFromText()和textFromValue()可以提供帮助,但不知道如何使用它们。
如何设置QDoubleSpinBox文本(或值)格式,如12°15°?
答案 0 :(得分:0)
一种方法是从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
免责声明:即使它看起来像是一个编译代码,但不工作,但显示了这个概念。