问题标签 [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 投票
1 回答
190 浏览

qt - QMouseMoveEvent 和 QKeyEvent 修饰符的意外行为

我在代码中遇到意外行为。我有一个包含 QGraphicsScene 的 QGraphicsView。现在我想检测用于缩放视图的鼠标滚轮和用于移动场景中项目的鼠标移动,后者仅在按下 controll 时。现在我有两个问题:

  1. 即使鼠标没有移动而只移动鼠标滚轮,也会调用 MouseMoveEvent。

  2. 在按下和不按下控件的情况下移动都可以正常工作,但是当我在按下控件时停止移动并继续使用鼠标滚轮时,不仅调用了 mousemoveevent,而且 controllmodifier 仍然处于活动状态。问题是什么?

主文件

ppi.h

ppi.cpp

ppiview.h

ppiview.cpp

ppiscene.h

ppiscene.cpp

0 投票
0 回答
112 浏览

qt5 - 选择性keyPressEvent,过滤它的发送者QLineEdit

我创建了一个 QWidget,其中包含三个 QLineEdit。然后我添加了一个覆盖的 keyPressEvent 以便这条 lineEdit_3 对按键做出反应。工作很好。

但是第一个和第二个 QLineEdit 也会对按键做出反应:(

我需要这样的东西:

0 投票
1 回答
625 浏览

python - QLineEdit 不使用 QKeyEvent 更新文本

我正在尝试实现一个虚拟键盘小部件。我能想到的最简单的方法是创建 QKeyEvent 实例并将它们与 QApplication.postEvent() 一起发送到焦点所在的小部件。

首先,我正在尝试更新我拥有的固定 QLineEdit,所以代码是:

但是 QLineEdit 实例不会在 GUI 中更新其文本!

线索?干杯和感谢!

已解决:(HeyYO 致敬

在我的情况下,代替 Qt.Key_A 我将该参数设置为 0,以便我可以将所有按钮连接到 virtualKeyPress 方法。我还必须将所有按钮的焦点策略设置为“无焦点”(直接在 Qt Designer 中完成)。最终代码如下:

0 投票
2 回答
1730 浏览

python - 从 unicode 字符串 pyqt pyside 发送击键

我需要在 pyqt4 或 pyside 中模拟击键,我已经有了以下代码,但它只添加了大写拉丁字母,不允许使用小写字母或其他语言字母

这是一个完整的例子,可以让这个想法与拉丁字母一起工作

0 投票
1 回答
1735 浏览

qt - 如何将 QKeyEvent 发送到特定的 qml 项目?

我正在尝试将自定义QKeyEvent(如Keypress key BTextField )发送到我的QML 文件中的项目(如) 。这是我写的,它不起作用。似乎项目 ( TextField) 没有得到我的事件(我假设这是因为B我的文本没有附加任何字符TextField)。我在课堂上捕获信号,click 然后ClickHandler在我的handleClick 插槽中,我尝试向我发布一个自定义eventfocused item这里是一个TextField.

点击处理程序.h

ClickHandler.cpp:

主.cpp:

main.qml:

0 投票
2 回答
1604 浏览

c++ - QKeyEvent isAutoRepeat 不起作用?

所以,我有一个应用程序,如果按住特定按钮,它会播放音频设备,当释放按钮时,它会停止音频设备。我使用keyPressEventKeyReleaseEvent实现它,它类似于下面的代码:

但显然isAutoRepeat功能不起作用,因为我可以看到连续打印出来,key_0 pressed尽管key_0 released事实上我在按下 0 键后没有释放它。是我的代码错误还是其他错误?

谢谢。

编辑

我认为这是因为MainWindow失去了键盘焦点。我如何才能真正找出哪个小部件具有焦点?按下时我实际上正在使用一些小部件Qt::Key_0,但我认为我将所有这些可能的小部件设置为Qt::NoFocus,我想它不起作用。

我试图通过执行以下操作来了解哪个小部件具有焦点:

但它总是打印一个空字符串。如何让它打印具有键盘焦点的小部件的名称?

0 投票
1 回答
350 浏览

qt - 获取 QKeyEvent 的关键位置(多平台)

为了制作适用于所有键盘布局的基于位置的键盘快捷键,我需要识别一个物理键盘键,而不是在它上面的键盘布局。理想情况下,我想检索 QKeyEvent 的扫描码,因为它不依赖于键盘布局。

例如,如果我想映射Shift+Q降低音量Shift+W提高音量(在美国键盘布局上,两个键彼此相邻),我可以根据这个扫描码集Shift+0x10将它们映射到and 。这样,它也适用于切换 Q 和 A 的法语键盘布局。它甚至适用于 DVORAK 键盘布局或其他奇特的键盘布局,因为键盘布局将被忽略。Shift+0x11

现在,问题是:如何检索 QKeyEvent 的扫描码,或任何其他说明物理键位置的参数,忽略键盘布局,这将适用于所有平台?我希望它可以在 Windows、Linux 和 OSX 上运行。

QKeyEvent::nativeScanCode()完成了工作,但它不适用于 OSX :\

0 投票
1 回答
176 浏览

qt - 将 keyEvent 从小部件传播到 QKeySequenceEdit

我有一个QTreeWidgetandQKeySequenceEdit我想按下快捷键QTreeWidget导致在QKeySequenceEdit. 我已经安装了 eventFilter 并QShortcut使用此解决方案构建了相应的:

如何根据当前的键盘布局从 QKeyEvent 捕获 QKeySequence?

但我坚持将事件发送到QKeySequenceEdit. 这是eventFilter中的一段代码

qDebug输出右键,但QKeySequenceEdit没有反应。

0 投票
1 回答
2695 浏览

pyqt - 通过设置焦点策略处理箭头键事件

我想在我的应用程序中处理箭头键的关键事件。我已经读过这样做必须禁用焦点。我遵循这个方法:PyQt not Recognizing arrow keys。实际上,当在 内调用self.setChildrenFocusPolicy(QtCore.Qt.NoFocus)(在链接线程和我下面的源代码中定义)MyApp.__init__时,按下箭头键会引发一个键事件。但是,我不想在应用程序的整个运行时保持禁用焦点,而只是在单击按钮时。所以我转向self.setChildrenFocusPolicy(QtCore.Qt.NoFocus)按钮点击功能:

实际上,按下按钮会禁用焦点(例如,行编辑不能再使用文本光标)。但是,按下箭头键仍然不会引发按键事件。

整个应用程序(您将需要一个带有按钮的 mainwindow.ui):

0 投票
1 回答
458 浏览

c++ - Qt keyPressEvent 错误

我写了这段代码,但我得到了这个错误:

“'->key' 的左侧必须指向类/结构/联合/通用类型”。

考虑到 GUI 是从类派生的QWidget类,我怎样才能正确地捕捉到按键的按下?

keyPressEvent声明如下: