일부 작업에 대해서는 다음을 수행해야합니다. 0에서 1000 사이의 양수 값을 가진 QDoubleSpinBox가 있다고 가정하십시오. 사용자가 스핀 상자 값을 낮추려고 시도 할 때마다, f.e. 값이 0 일 때 아래쪽 버튼을 클릭하려면 spinbox의 값이 문자열 "unset"이어야합니다. 나는 spinbox의 값을 지우고 setPrefix를하기 위해 이것을 시도했다. 그러나 그것은 효과가 없었습니다. 다른 솔루션?문자열을 QDoubleSpinBox로 설정하십시오.
3
A
답변
9
시도해 볼 수 있습니다 specialValueText
.
#include <QApplication>
#include <QDoubleSpinBox>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QDoubleSpinBox doubleSpinBox;
doubleSpinBox.setRange(0.f, 1000.f);
doubleSpinBox.setValue(1.f);
doubleSpinBox.setSpecialValueText("unset");
doubleSpinBox.show();
return a.exec();
}
값이 0, spinbox의 값이 문자열 "해제"해야합니다 :
이
은 예입니다.+2
좋은 기능 : Qt를 꽤 오래 사용해 본 적이 없다고 생각하지 않았습니다. 팁 주셔서 감사! – Robert
5
은 당신이 원하는 것을 달성하기 위해 두 가지 해결책이 있습니다. 텍스트가 표시되는 경우 다른 대답 pezy로서
는 setSpecialValueText를 사용 말할 때 전류 값() == 최소값()을 spinbox
또는 좀더 강력한 : 서브 QSpinBox과 같은 기능을 재정의
int valueFromText(const QString &text) const;
QString textFromValue(int value) const;
QValidator::State validate(QString & input, int & pos) const;
비슷한 것을 시도해보십시오. QSpinBox enter NaN as a valid value.
-1
하위 클래스 QSpinBox과 당신의 행동을 정의합니다.
이것 좀 봐 example
흠 있지만 QDoubleSpinBox 부동 소수점 수를 표시한다. 그러나 문자열을 설정하고 싶습니까? 스핀 상자와 함께 라벨을 사용하는 것이 더 좋은 아이디어일까요? – vahancho