Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何始终在QDoubleSpinbox中显示符号(+;或-)?_C++_Qt_Qt5_Qdoublespinbox - Fatal编程技术网

C++ 如何始终在QDoubleSpinbox中显示符号(+;或-)?

C++ 如何始终在QDoubleSpinbox中显示符号(+;或-)?,c++,qt,qt5,qdoublespinbox,C++,Qt,Qt5,Qdoublespinbox,如果QDoubleSpinbox中的值为正值,则不显示任何符号 如果该值更改为负值,则会自动添加“-”号 如果前缀强制为“+”,则正数将显示为带符号 doubleSB->setPrefix("+"); 但是“+”将保留在那里,并且在值集为负值时不会自动删除 有没有办法始终显示正确的符号 如果值为正数,请用“+”号 如果值为负数,则使用“-”符号(与默认值相同) 一种可能的解决方案是覆盖该方法,并在必要时添加该字符: #include <QApplication> #

如果QDoubleSpinbox中的值为正值,则不显示任何符号

如果该值更改为负值,则会自动添加“-”号

如果前缀强制为“+”,则正数将显示为带符号

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();
      }