检查QT输入的输入
Checking input of QT inputs
我有一个相当复杂的对话框,其中的输入是具有不同允许范围的数字。我想知道什么是最干净的模式来保证我的QLineEdits具有正确的输入值。
显而易见的方法似乎是在用户单击"确定"按钮时检查输入值。我遇到的问题是,一些GUI控件依赖于其他输入的值。因此,让我将控件的逻辑分支到所有输入值错误的情况下,代码似乎变得有点糟糕。
这种情况有好的模式吗?
我正在考虑将QLineEdit子类化,并使用focusOutEvent来检查对话框的输入。如果输入不正确,我会默认值并触发逻辑。这将保证每个lineedit都负责自己的验证。这样做有明显的陷阱吗?
QValidator非常棒,问题是当它们的状态处于中间时。
使用QLineEdit
提供的信号,构建一个小的插槽验证类。这将比直接对它们进行子类化更容易,并允许进行更细粒度的控制。
您可以很好地使用子类化QLineEdit,因为只需设置与适当信号的连接就很容易了。
class foo : public QLineEdit
{
Q_OBJECT
// ... staff here
private:
void signal_control()
{
connect(this,SIGNAL(textChanged(const QString & )),this, SLOT(text_validate(const QString & )));
private slots:
void text_validate(const QString &)
{
// validate your text here
}
};
您还可以构建一个不同的类,该类只侦听QLineEdit对象生成的信号并单独进行验证。交朋友可能是个好主意。
相关文章:
- 如何在Qt 4.8中阻止/忽略/丢弃早于特定超时的用户输入事件
- Qt,操作缓慢时不要冻结GUI输入元素
- 使用 qt 或 c++ 从桌面获取输入和输出
- 如何在QT中为QInputDialog输入密码时设置背景非活动和灰色?
- Qt读取串行输入,然后将其拆分为单独的变量
- Qt 自动 UI 测试因消息框而停止.如何在消息框中模拟输入?
- QString变量在使用QT Creator从键盘输入的双变量后跳过
- 处理自定义QT小部件中的输入事件
- 在Qt中如何为用户创建GUI以输入nxn矩阵
- 其他语言的Qt键盘输入
- 检查leandit输入是否具有正确的格式QT 5 C
- 尝试使用对象作为输入来绘制QT创建者
- 我的代码怎么了?带有QT的原始输入API
- QComboBox 作为 QT 中的函数输入参数
- Qt- 设置来自表视图的输入的验证器
- Qt c++如何输入值
- 存储线路编辑到字符串QT的输入
- qt检查文件中是否存在文件,如果它没有提示用户输入其位置,则将文件复制到程序工作目录
- Qt 线程等待来自 GUI 的输入
- 用键盘将数据输入Qt GUI:按下回车键时会产生意想不到的副作用