问题标签 [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.
qt - QWebEngineView, post KeyEvents inside the View
I have my own "Virtual Keyboard". I already got to transform buttons clicked into KeyEvents and deliver it to QTextEdit and so on. My problem now is that I want to do the same for writable areas inside a QWebEngineView.
For example, I use my keyboard to edit my QLineEdit, and request a website. DONE
Let's say I requested google. Now I have the Google website right in front of me. I need to send KeyEvents from my Keyboard to it's search box.(Box that is inside my QWebEngineView.
Let's now point a few points:
- I am using PyQt5
- As I've read, the API says me that it's parent should consume the KeyEvent to the corect place. here
- This snippet says "...like it was possible with QtWebKit."
- I've seen now that there is no more QtWebKit, and so Chromium instead.(Maybe that's the reason I'm not getting to post these events)
This is what I have for example to simulate KeyEvents to my QEditText and whatever..
This Last part is the one that I post my events on the "self.__receiver". This receiver is set always for the "QWidget" that invoke it.
I have tried just to say something like:
qt - 如何将关键事件发送到 QDialog 中的 qwidget
我正在尝试创建一个返回双精度的对话框,类似于 QInputDialog,但对话框中包含数字按钮。它适用于没有键盘的嵌入式系统。
问题是 QDoubleSpinBox 永远不会对按键/释放做出反应。对话框本身正在接收关键事件。我尝试在 keyPressEvent() 和 keyReleaseEvent() 中调用 event->ignore(),但没有成功。还尝试调用 QApplication::processEvents(),但没有成功。
我正在使用在嵌入式 ARM 处理器上的 Linux 上运行的 Qt 4.8。
数字对话.h
数值对话框.cpp
当我单击数字“9”按钮时,控制台输出为:
"9"
"9"
对话框得到关键释放 "9"
当我单击 Backspace 按钮时,控制台输出为:
""对话框得到按键""""对话框得到按键释放""
doubleSpinBox 中的值没有变化。如何获取 doubleSpinBox 的关键事件?
谢谢,玛丽
qt - 如何将小写键发送到 Qt 小部件
我有一个加载某个网站的 QWebView。现在,我想模拟一个在 html 输入字段中输入内容的人。
我将焦点放在输入字段上,然后继续:
这可行,但输入的键始终是大写的 I。我需要将小写的 i 发送到小部件。不幸的是,Qt 类只提供 Qt::Key_X 或 Qt::Key_A - 而不是 Qt::Key_a。
我怎么解决这个问题?
c++ - Qt - 如何将 Qt::Key 转换为 nativeVirtualKey
如何将 a Qt::Key
(例如Qt::Key_At
)转换为 a或 anativeVirtualKey
之外的代码?keyPressEvent()
keyReleaseEvent()
python - 回车键调用函数
当通过 Enter 键盘键按下 QPushButton ("click") 时,如何使 (on_click) 工作?它只与 mouse_click 交互
qt - 具有多个移位/控制修饰符的 QKeyEvent
我有一个带有 6 个按钮的 USB 设备,我正在尝试与我的应用程序一起使用。该设备的文档列出了每个按钮的键映射。例如,这些按钮之一据说映射到 Ctrl+Shift+F20。
对此进行编码虽然不起作用:
我继承的代码是:
我使用 USBLyzer ( http://www.usblyzer.com/ ) 和 Linux 上的 evtest ( https://www.systutorials.com/docs/linux/man/1-evtest/ ) 来检查正在发送的数据/密钥和为该按钮找到以下内容:
原始值为01 03 00 6F 00 00 00 00 00
。
查看所有按钮数据,它们在重复修饰符时都表现出相同的行为。
我的想法是试试这个:
但这是正确的吗?我等着早上回去工作时试试这个,但如果以前见过这个的人给我建议的话,我会很感激。
编辑 1
以上并没有什么不同。我添加了更多调试,如下所示:
结果是:
我需要一种方法来确定整个事件或组合键何时开始和结束。然后我可以累积整个事件的按下次数并决定按下了哪个按钮。
编辑 2
决定通过添加布尔值来记录何时检测到键 Control、Shift 或 Alt 来处理此问题,并且当检测到非修饰符时假设我们拥有所有键(此设备为 true)然后执行适当的逻辑。
这现在有效。
bool _controlPressed; bool _shiftPressed; 布尔 _altPressed; bool _action_Completed;
当检测到新按钮按下时,这些设置为 false。
然后每次调用 OnKeyRelease:
qt - 如何在 Qt 中发布组合键事件,如 CTRL-L
我知道如何发布单键事件
现在我想发布关键事件的组合,例如QKeySequence(tr("Ctrl+L"));
这是发布关键序列事件的正确方法吗?
还有其他方法可以实现吗?
谢谢,
c++ - 如何检查 QT 中是否按下 [Shift + Tab]
如何检查是否按住 SHIFT 键并使用 QKeyEvent 按下 TAB 键?
我试过使用:
但是,event->key()
不等于Qt::Key_Tab
只要按住 shift 键。
python - PyQt 相当于“keydown”事件?
在 PyQt 中,我可以定义一个 keyPress 和一个 keyRelease 事件,但是,只要按下键,就会连续触发 keyPress 事件,而我更喜欢在第一次按下键时触发一次的事件。
有这样的内置事件吗?
如果不是,那么创建一个最简单和正确(即同时按下多个键等)的方法是什么?