问题标签 [qkeyevent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4349 浏览

c++ - 在 QComboBox 中捕获文本更改事件

我正在 Red Hat Linux 上开发一个 Qt 应用程序。我想在QComboBox.

我已经将一个插槽连接到editTextChanged()每次按键而不是Enter Key发出的信号。
为什么这样?有没有其他方法可以检测回车

0 投票
1 回答
1902 浏览

windows - 具有多个修饰符的 KeyPress 在 QWidget 中不起作用

我为我的主要小部件的 keyPressEvent 添加了一个覆盖:

问题是它不起作用。如果我单独尝试 AltModifier 或 ControlModifier ,它会起作用(当然,同时改变第二个条件),但对它们都不起作用。当我按下 F11 时,key() 将不等于 Qt::Key_F11。我正在使用窗户。

编辑:检查日志,结果是 Ctrl+Alt+F11 和 Ctrl+Alt+F12 不发送键事件(而其他 Ctrl+Alt+Fxx 键发送)。

0 投票
2 回答
2668 浏览

qt - 如何将 Windows 本机虚拟键代码转换为 Qt::Key?

我正在开发一个与 Windows 本机程序通信的程序,因此它需要实际的本机虚拟键代码。如何从 Windows 原生虚拟键代码转换为 Qt::Key?

0 投票
1 回答
2652 浏览

c++ - Overriding keyPressEvent in QTextEdit subclass

I have the following example in Qt in which I try to override the keyPressEvent of a subclass of QTextEdit, but gives me a "multiple definition of txt::keyPressEvent(QKeyEvent*)" and I can't figure out why:

I tried forward declaring QTextEdit in txt.h and #including it only in the cpp, but that gives me some other errors (probably because I need the class in the header, since i'm subclassing it?)

Anyway, what am I doing wrong?

EDIT: I also tried it with another class (QLabel), and now I'm getting the same error...

0 投票
3 回答
15140 浏览

qt - 如何使用 Qt 禁用 Alt + F4 窗口关闭?

我使用以下行从我的对话框中禁用了 Qt 中的 X 按钮:

但我无法检测Alt+F4使用此代码:

我应该怎么做才能在 Qt中检测Alt+或禁用它?F4

0 投票
1 回答
1350 浏览

qt - 在 QWizard 中,下一个按钮不能接受按键事件,但接受鼠标按下事件?

我有一个类继承 QWizard,并添加 2 个独立的 QWizardPage(s)。在转到下一页之前,我想在第一页上做一些工作(即检查互联网连接)。用户可以通过鼠标单击“下一步”按钮,或者直接通过键盘按回车键,因为“下一步”按钮默认为焦点。所以我为按钮安装了一个事件过滤器:

按钮(QWizard::NextButton)->installEventFilter(this);

然后在向导类中实现事件处理代码:

正如我多次尝试的那样,单击鼠标始终可以使我的事件处理代码运行,但按键无济于事。另一个奇怪的事情是,在按钮上按下鼠标而不释放,然后移开并释放,向导停留在第一页,现在我可以按下键,一切都好。

任何人都可以帮助找到原因,这是一个 Qt 错误吗?如何使关键事件正常工作?

0 投票
1 回答
4827 浏览

qt - 如何制作一个 Qt 对话框来处理关键事件而不是其所有子小部件?

我有一个对话框继承QDialog。该对话框有许多小部件,包括Qbuttons、QLabel、QGraphicsView等。许多小部件如按钮可以在获得焦点时处理SPACE按键事件。现在我不希望任何子小部件处理它,而是让主对话框来处理。由于主对话框中有很多小部件,所以我没有为它们安装事件过滤器,而是为 qApp 安装。

代码如下:

和主对话框的事件过滤器:

不幸的是,使用这段代码后,主对话框的布局很奇怪,似乎有些小部件不记得他们的大小政策。也许一些 Qt 调整大小或重绘事件未处理?谁能告诉我如何在主对话框中捕捉关键事件,但不影响其他功能?

0 投票
1 回答
1569 浏览

qt - QApplication 不处理按键事件?

在 main() 中,我只是为 qApp 安装了一个事件过滤器。然后在 MyDialog.cpp 中:

我设置了一些断点。可以到达“return false”行,这意味着qApp已经成功地在MyDialog上安装了一个事件过滤器。但是当我按下键盘时,'return true' 行从未到达。我记得 QApplication 将调度所有事件。谁能告诉我为什么会这样?

0 投票
1 回答
989 浏览

windows - VNC:将 Qt KeyEvent 转换为可用的 X11/RFB 键符

背景:我目前正在创建一个嵌入在 QWidget 中以在 Windows 上使用的简单 VNC 查看器。为此,我编译了仅 Qt 的 VNC 版本的KRDC(KDE 的远程桌面查看器)以及它在 windows 上的依赖项 libvncclient。然而,现在出现的问题在于 krdc 通过 vnc 发送键事件的方式:它只是发送 QKeyEvent::nativeVirtualKey() 的值,在 X11 上它已经很方便地是一个有效的 RFB 键符。然而,在 Windows 上,情况并非如此。

现在,为了解决这个问题,我认为最好的(最终也是可移植的)方法是将 Qt 的 QKeyEvent::key() 和 ::modifier() 数据转换回有效的 X11/RFB 键符。尽管考虑到我需要根据修饰符状态(XK_a 与 XK_A,到目前为止我只考虑过 shift)来选择不同的键符,这似乎有些复杂。研究如何在 Qt 的源代码中完成 X11 -> Qt 翻译也没有真正的帮助。

可能已经有一个库或代码片段可以完成这个吗?还是我应该尝试编写自己的(不完整的)翻译程序?如果是这样,解决此问题的最佳方法是什么,还有其他与 X11 相关的警告我应该注意吗?

0 投票
1 回答
1100 浏览

qt - 使用 qkeyevent 在 qt 中获取 shift+数字键

我正在使用 QKeyEvent 来获取 Shift+数字键,但它返回我的 ascii 为“!” 而不是“1”所以我的问题是,是否有任何方法或技术来获取实际数值的 ascii 而不是“!”的 ascii (特殊字符)。我也关注了这个线程:

使用 shift 修饰符从键码中获取键字符(值)

但这似乎并不能帮助我摆脱这个问题。提前致谢。