如何防止回车键关闭我的 QDialog (Qt 4.8.1)

2024-01-29

我有一个QDialog with a QDialogButtonBox. The OK and Cancel按钮处于活动状态。有时,我会根据对话框的状态禁用或隐藏“确定”按钮。看来,无论我做什么,Enter 键总是会激活“确定”按钮。我真的不希望这种事发生。我努力了:

  • 每次显示/隐藏/启用/禁用/无论按钮时,将默认和自动默认属性设置为 false
  • 在 OK 按钮上安装事件过滤器,拦截回车、回车和空格键事件(按下和释放)
  • 将按钮上的焦点策略设置为NoFocus

对于上述所有内容的组合,Enter 键仍然接受该对话框。有谁知道如何阻止这个吗?看来这么简单的事情我应该都能阻止吧?


按键事件过滤应该在对话框本身上完成,因为处理转发的代码Return and Enter默认按钮的键位于QDialog::keyPressEvent.

void Dialog::keyPressEvent(QKeyEvent *evt)
{
    if(evt->key() == Qt::Key_Enter || evt->key() == Qt::Key_Return)
        return;
    QDialog::keyPressEvent(evt);
}

Or

theDialog−>installEventFilter(anotherClassObject);

bool AnotherClass::eventFilter(QObject *obj, QEvent *evt)
{
    if(evt->type() == QEvent::KeyPress) {
        QKeyEvent *keyEvent = static_cast<QKeyEvent*>(evt);
        if(keyEvent->key() == Qt::Key_Enter || keyEvent->key() == Qt::Key_Return )
            return true; // mark the event as handled
    }
    return false;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何防止回车键关闭我的 QDialog (Qt 4.8.1) 的相关文章

随机推荐

  • 连接两个大的 numpy 2D 数组

    我有两个大的 numpy 二维数组 一种形状是 X1 1877055 1299 另一种形状是 X2 1877055 1445 然后我用 X np hstack X1 X2 将两个数组连接成一个更大的数组 但是 程序不运行并退出 代码为 9
  • C# 使用反射获取参数值

    如何获取 parms 的值 在使用反射的循环中 在上一个问题中 有人向我展示了如何使用反射循环参数 static void Main string args ManyParms a b c 10 20 true end Console Re
  • matplotlib 中的第三个堆叠条形图

    考虑来自 matplotlib 网站的示例代码 a stacked bar plot with errorbars import numpy as np import matplotlib pyplot as plt N 5 menMean
  • 没有互联网时 WWW 冻结

    我正在 Unity 中编写一个简单的代码 以检查我是否能够通过我的应用程序访问网站 这是我写的代码 IEnumerator CheckInternetPing WWW wwwInternet new WWW http google com
  • ASP.Net MVC - 从 HttpPostedFileBase 读取文件而不保存

    我正在使用文件上传选项上传文件 我直接用 POST 方法将此文件从视图发送到控制器 例如 HttpPost public ActionResult Page2 FormCollection objCollection HttpPostedF
  • 将 Android 应用程序连接到 Google Cloud Endpoints 时出错:找不到类

    我已经使用 Google Cloud Endpoints 构建了一个 API 并且正在尝试编写一个 Android 应用程序来连接它 我按照以下教程进行操作 https developers google com appengine doc
  • 如何正确检查SQL Server 2005中是否存在临时表?

    我有一个查询 我从表中插入一些值 SELECT ID NAME INTO tmpTable1 FROM TableOriginal 第一次执行没问题 如果我在SSMS Microsoft Sql Server Management Stud
  • 部署后 swagger-ui 返回 500

    开箱即用的配置在我的机器上完美运行 没有任何问题 但是当我部署到我们的测试环境时 我收到以下消息 500 消息 发生错误 api swagger docs v1 The deployment is to default web site a
  • 将 zend 过滤器和验证链附加到模型/理论实体

    本集来自大象之声 http voicesoftheelephpant com s Matthew Weier podPressPlayerSpace 1 开始谈论Zend Form如何Zend Form将于 22 00 左右出现在 Zend
  • Android 关于焦点变化

    当用户将焦点从编辑文本更改为另一个项目时 我想更新 EditText 我想检查编辑文本的内容 例如数字是否大于 10 如果将其更改为 10 我该怎么做呢 set setOnFocusChangeListener到您的编辑文本 editTex
  • 在ajax请求回调中显示PHP错误

    在一个页面中 test php 我只需激活错误报告 停用日志记录 然后调用一个函数test 它不存在 正如预期的那样 如果我运行代码 我会收到错误消息 Fatal error Uncaught Error Call to undefined
  • 是否有 android shell 或 adb 命令可以用来获取设备的 IMEI/MEID?

    我可以运行一些 adb 或 android shell 命令来返回设备的 IMEI 或 MEID 号码吗 最好这就是返回的全部内容 我想出了如何做到这一点 你需要跑adb shell dumpsys iphonesubinfo在一个壳里 它
  • 条形图:如果值是正值还是负值,如何选择颜色

    我有一个带有正值和负值的 pandas 数据框 想将其绘制为条形图 我想绘制正值 绿色 和负值 红色 非常原始 哈哈 我不知道如何传递 if gt 0 green else data pd DataFrame 15 10 8 4 5 ind
  • 节点和顶点有什么区别?

    节点和顶点之间有什么区别 如果有 查了无数网站都找不到答案 甚至我的书也没有具体说明 所以我有点迷失了 值得一提的是 我正在寻找除了在图形中使用时称为 顶点 和在树中使用时称为 节点 这一事实之外的区别 单词之间没有区别Node and V
  • 具有实体框架的简单多租户 Web 应用程序的解决方案

    我正在开发一个多租户 Web 应用程序 堆栈 MVC 4 实体框架 4 3 我的要求非常简单 每个租户都有相同的 UI 和 CodeBase 在我的数据库中 我有一些带有 TenantId 字段的表 以及其他没有的表 我已经建立了一个非常简
  • Django Rest Framework 对象不可迭代?

    我已经序列化了我的一个带有外键的模型 我得到 Parent object is not iterable 模型 py class Parent models Model Parent data class Child models Mode
  • .NET Framework 4.0 中的水晶报表

    我们已经编写了一个 WPF 应用程序 NET 3 5 using 视觉工作室2010 该解决方案由 8 个项目组成 全部编译于 NET 3 5 该应用程序使用水晶报表 目标操作系统是 Windows 7 最近 启动项目被编译在 NET 4
  • 序数日期的格式(带有后缀 -st、-nd、-rd、-th 的月份中的某天)

    我错过了什么吗 我不知道如何将以下内容转换为Dates 其中该月的某天 d 具有序数后缀 st nd rd th ord dates lt c September 1st 2016 September 2nd 2016 September
  • awk 打印从第 n 到最后一个带空格的所有列

    我有以下输入文件 a 1 o p b 2 o p p c 3 o p p p 在最后一行中 最后一行之间有一个双倍空格p s 和列有不同的间距 我已经使用了以下解决方案 使用 awk 打印从第 n 到最后的所有列 https stackov
  • 如何防止回车键关闭我的 QDialog (Qt 4.8.1)

    我有一个QDialog with a QDialogButtonBox The OK and Cancel按钮处于活动状态 有时 我会根据对话框的状态禁用或隐藏 确定 按钮 看来 无论我做什么 Enter 键总是会激活 确定 按钮 我真的不