C++ 如何始终在QDoubleSpinbox中显示符号(+;或-)?
如果QDoubleSpinbox中的值为正值,则不显示任何符号 如果该值更改为负值,则会自动添加“-”号 如果前缀强制为“+”,则正数将显示为带符号C++ 如何始终在QDoubleSpinbox中显示符号(+;或-)?,c++,qt,qt5,qdoublespinbox,C++,Qt,Qt5,Qdoublespinbox,如果QDoubleSpinbox中的值为正值,则不显示任何符号 如果该值更改为负值,则会自动添加“-”号 如果前缀强制为“+”,则正数将显示为带符号 doubleSB->setPrefix("+"); 但是“+”将保留在那里,并且在值集为负值时不会自动删除 有没有办法始终显示正确的符号 如果值为正数,请用“+”号 如果值为负数,则使用“-”符号(与默认值相同) 一种可能的解决方案是覆盖该方法,并在必要时添加该字符: #include <QApplication> #
doubleSB->setPrefix("+");
但是“+”将保留在那里,并且在值集为负值时不会自动删除
有没有办法始终显示正确的符号
- 如果值为正数,请用“+”号
- 如果值为负数,则使用“-”符号(与默认值相同)
- 一种可能的解决方案是覆盖该方法,并在必要时添加该字符:
#include <QApplication>
#include <QDoubleSpinBox>
class DoubleSpinBox: public QDoubleSpinBox
{
public:
using QDoubleSpinBox::QDoubleSpinBox;
QString textFromValue(double value) const override
{
QString text = QDoubleSpinBox::textFromValue(value);
if(value > 0)
text.prepend(QChar('+'));
return text;
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
DoubleSpinBox w;
w.setMinimum(-100);
w.setSuffix("%");
w.show();
return a.exec();
}
#包括
#包括
类DoubleSpinBox:公共QDoubleSpinBox
{
公众:
使用QDoubleSpinBox::QDoubleSpinBox;
QString textFromValue(双值)常量重写
{
QString text=QDoubleSpinBox::textFromValue(值);
如果(值>0)
text.prepend(QChar(+');
返回文本;
}
};
int main(int argc,char*argv[])
{
质量保证申请a(argc、argv);
双自旋盒w;
w、 设置最小值(-100);
w、 setSuffix(“%”);
w、 show();
返回a.exec();
}