Qvalidator是否有可能显示弹出窗口
Is it possible for Qvalidator to show a popup
我想知道qvalidator是否有可能显示弹出框,因为qlineitiat项目无效。我知道QValidator只会过滤输入,并且仅在数据有效时才显示数据。但是,我希望它显示我输入的数据并显示一个工具提示(弹出框),即输入无效。
您可以将要使用的特定验证器子类列为要使用并覆盖其validate
方法,以便在验证后发出信号。例如,对于QIntValidator
,您可以创建一个子类,如下(代码仅显示相关摘录):
标题文件:
class QIntValidatorReporter : public QIntValidator {
Q_OBJECT;
public:
QIntValidatorReporter(int minimum, int maximum, QObject * parent = 0);
virtual QValidator::State validate(QString& input, int& pos ) const;
signals:
void setError(const QString& msg) const;
};
.cpp文件:
QValidator::State QIntValidatorReporter::validate(QString& input, int& pos ) const {
QValidator::State result = QIntValidator::validate(input, pos);
if (result == QValidator::Invalid) {
emit setError(QString("Allowed range: %1 to %2").arg(bottom()).arg(top()));
} else {
emit setError("");
}
return result;
}
通过根据需要将setError
信号连接到任何插槽,您可以实现所需的功能以报告验证状态。
请参阅完整的示例项目。
相关文章:
- 如果不在窗口 10 中声明名为 openCV 的 openCV namedWindow,QT 图像显示将无法正常工作
- Visual Studio 2017 停止工作,并在打开后显示许多控制台窗口
- 在 GLFW 窗口中显示 FFMPEG 解码帧
- Gtkmm 窗口为空白,不显示任何小部件或标题
- 为什么输出窗口上没有显示输出?
- C++ 窗口显示无框图像
- 如何使用Qt在新窗口中显示视频帧
- 如何以编程方式使窗口全屏显示?
- 强制将以SW_HIDE启动的进程中的窗口显示为STARTUPINFO
- 制作垫子类型对象的数组.输出窗口显示同一帧
- Gtk::在将我的gtkmm2移植到gtkmm3应用程序时,窗口显示并退出
- OpenGL:新窗口显示当前打开的窗口的内容
- WINAPI 创建窗口显示奇怪的结果
- 为什么通过CreateProcess调用的程序的窗口显示为SW_HIDE和CREATE_NO_INDOW
- 输出窗口显示三个图像,而不是一个
- 分窗口显示一个软件,总是在最上面
- WINAPI -窗口显示在调试版本中,而不是在发布版本中
- 在Visual Studio中使用本地Windows调试器运行第一个程序。输出窗口显示大量"Cannot find or open the PDB file"
- 我们如何防止控制台窗口显示在Visual Studio下
- 更新窗口显示OpenGL/GLUT c++