1 つの方法は、QDoubleSpinBox から継承し、この疑似コードで次のようにそれぞれのメソッドをオーバーライドすることです。
main.cpp
#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();
}
main.pro
TEMPLATE = app
TARGET = main
QT += widgets
SOURCES += main.cpp
ビルドして実行
qmake && make && ./main
免責事項: コンパイル コードのように見えますが、機能しませんが、概念を示しています。