首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串设置为QDoubleSpinBox

将字符串设置为QDoubleSpinBox
EN

Stack Overflow用户
提问于 2014-11-14 08:18:58
回答 3查看 3.1K关注 0票数 5

关于某些任务,我必须做以下几件事。假设我有一个正值为0到1000的QDoubleSpinBox。每当用户试图降低spinbox的价值时,f.e。若要在值为0时单击“向下”按钮,则尖端盒的值必须为字符串"unset“。我尝试这样做,以清除尖晶盒的值,然后是setPrefix。但它没有起作用。还有其他解决办法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-11-14 08:40:28

你可以试试specialValueText

这就是一个例子:

代码语言:javascript
复制
#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的值必须为字符串"unset“。

票数 10
EN

Stack Overflow用户

发布于 2014-11-14 08:25:12

要实现你想要的,有两种解决方案。

正如pezy在另一个答案中所说的,使用setSpecialValueText,当尖晶盒的当前值() == minimum()时显示文本

或者更强大一点:子类QSpinBox和覆盖以下函数:

代码语言:javascript
复制
int valueFromText(const QString &text) const;
QString textFromValue(int value) const;
QValidator::State validate(QString & input, int & pos) const;

看看这里,尝试类似的QSpinBox输入NaN作为有效值

票数 6
EN

Stack Overflow用户

发布于 2014-11-14 08:26:57

子类QSpinBox并定义您的行为。

看看这个示例

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26925680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档