让我用一个例子来解释这个问题。
如果有TextField这样的话
TextField {
text: "0.0"
validator: DoubleValidator { bottom: -359.9;
top: 359.9;
decimals: 1;
notation: DoubleValidator.StandardNotation }
onEditingFinished: {
console.log("I'm here!");
}
}
Run Code Online (Sandbox Code Playgroud)
我们可以键入数字,例如444.9,399.9或-555.5。如您所见,值不在-359.9和之间359.9。
在文档中,我们可以找到以下信息:
输入被接受,但如果输入的双精度数超出范围或格式错误,则该输入无效;例如,小数点后的位数过多或为空。
我以为DoubleValidator自己不接受这种事情,但是不幸的是它接受了。
因此,我想解决方案将是检查最终输入,但是我们又遇到一个问题:editingFinished仅当验证器返回可接受的状态时才会发出此消息,而情况并非总是如此。
也许我没有做一个好的方法,我不了解如何使用,DoubleValidator或者我需要一些C ++代码。
顺便说一句,我正在使用Qt 5.4。
我的应用程序有一个用Qt QML编写的GUI,我们使用qsTr()和Qt .ts文件成功地将其国际化.现在我们通过Qt的qmldir API 添加第三方插件支持.在.qml插件的文件中,qsTr()仅当转换已经在主机应用程序的.ts文件中时才能正常工作.第三方QML作者如何将本地化字符串添加到其qmldir插件中?
有一个继承自QAbstractListModel的模型,我在qml中使用它.此模型的一个属性是参数,它们特定于此模型的元素类型.这是此类参数的一个元素TemperatureParam,DifrentParamType另一个,第三个仍然是...我怎样才能将对象传递给qml并确保在使用后释放内存?下面的代码现在可以正常工作,但在我看来它并不安全.
Param类是如此微不足道:
class QuickTemperatureParam : public QObject
{
Q_OBJECT
Q_PROPERTY(float param1 READ param1 WRITE setParam1)
//...
};
Run Code Online (Sandbox Code Playgroud)
模型类(这是我要问的):
class SectionsModel : public QAbstractListModel
{
//...
QVariant data(const QModelIndex &idx, int role = Qt::DisplayRole) const override
{
//...
int type = getType( idx );
if (type == 1)
{
auto p = new QuickTemperatureParam( idx );
p->deleteLater(); // This is all right or no?
return qVariantFromValue(p);
}
else if (type == 2)
//...
}
};
Run Code Online (Sandbox Code Playgroud)
QML是这样的:
ListView {
model: …Run Code Online (Sandbox Code Playgroud) 我已经仔细研究了那些时髦的文档,并没有找到类似的东西,但那里的东西有点随意组织.我正在从beanshell切换到groovy,并使用beanshell中的源("fileloc")方法内联 - 包含其他实用程序beanhell脚本以供重用.在groovy或最佳实践中是否有标准功能?
我QMessageBox定义为
m_setting2 = new QMessageBox();
m_setting2->setWindowTitle("NOTE");
m_setting2->setText("RESETTING PREFERENTIAL VALUE TO ");
m_setting2->show();
Run Code Online (Sandbox Code Playgroud)
哪里m_setting2是我的QMessageBox*.
现在之后VALUE TO,setText我想添加一个从中获取的整数参数QLineEdit.该整数存储在valuee.
那我怎么能打印出那个整数呢VALUE TO?
在某个地方,我看到它应该是类似QString.("%1").arg(valuee)但它不起作用.
请帮助我,感谢任何类型的关注.
我有一个小部件,例如QComboBox.
通过该功能,setStyleSheet("background:red")我可以设置背景。
但我怎样才能恢复颜色呢?我试过了"background:gray","background:silver"但看起来不一样。
我打算通过检测 Playstore 安装的应用程序是否是游戏来制作一个 android 应用程序来控制我的手机使用。所以如果安装的应用程序是游戏应用程序,我的应用程序会检测到安装的应用程序是一种游戏,并且不允许游戏应用程序运行。
我想知道是否有任何源代码。
qt ×5
qml ×3
c++ ×2
android ×1
beanshell ×1
groovy ×1
localization ×1
memory-leaks ×1
plugins ×1
pyqt ×1
python ×1
qlineedit ×1
qmessagebox ×1
qt5.4 ×1