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

linux - 未生成某些键 [QKeyEvent]

我设计了一个应用程序,我将无法访问系统键盘(在 Debian 下编写)。用于通过 RS232 连接的按键面板显示器。按钮必须发出 Tab、Backtab、箭头和 Enter 键。在主对话框的类中,我发出信号对应的按钮,即。

使用以下调用在各种对话框中捕获此信号:

反过来,同样的功能槽是:

这样,制表和 BackTab 工作没有问题,但箭头和输入不起作用。我正在使用相同的机制,例如:

可惜没有反应。

为了澄清,我在下面发布了算法。

在此处输入图像描述

0 投票
1 回答
711 浏览

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:

  1. I am using PyQt5
  2. As I've read, the API says me that it's parent should consume the KeyEvent to the corect place. here
  3. This snippet says "...like it was possible with QtWebKit."
  4. 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:

0 投票
1 回答
1182 浏览

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 的关键事件?

谢谢,玛丽

0 投票
0 回答
564 浏览

qt - 如何将小写键发送到 Qt 小部件

我有一个加载某个网站的 QWebView。现在,我想模拟一个在 html 输入字段中输入内容的人。

我将焦点放在输入字段上,然后继续:

这可行,但输入的键始终是大写的 I。我需要将小写的 i 发送到小部件。不幸的是,Qt 类只提供 Qt::Key_X 或 Qt::Key_A - 而不是 Qt::Key_a。

我怎么解决这个问题?

0 投票
0 回答
331 浏览

c++ - Qt - 如何将 Qt::Key 转换为 nativeVirtualKey

如何将 a Qt::Key(例如Qt::Key_At)转换为 a或 anativeVirtualKey之外的代码?keyPressEvent()keyReleaseEvent()

0 投票
1 回答
2746 浏览

python - 回车键调用函数

当通过 Enter 键盘键按下 QPushButton ("click") 时,如何使 (on_click) 工作?它只与 mouse_click 交互

0 投票
0 回答
1302 浏览

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:

0 投票
0 回答
398 浏览

qt - 如何在 Qt 中发布组合键事件,如 CTRL-L

我知道如何发布单键事件

现在我想发布关键事件的组合,例如QKeySequence(tr("Ctrl+L"));

这是发布关键序列事件的正确方法吗?

还有其他方法可以实现吗?

谢谢,

0 投票
1 回答
1260 浏览

c++ - 如何检查 QT 中是否按下 [Shift + Tab]

如何检查是否按住 SHIFT 键并使用 QKeyEvent 按下 TAB 键?

我试过使用:

但是,event->key()不等于Qt::Key_Tab只要按住 shift 键。

0 投票
1 回答
941 浏览

python - PyQt 相当于“keydown”事件?

在 PyQt 中,我可以定义一个 keyPress 和一个 keyRelease 事件,但是,只要按下键,就会连续触发 keyPress 事件,而我更喜欢在第一次按下键时触发一次的事件。

有这样的内置事件吗?

如果不是,那么创建一个最简单和正确(即同时按下多个键等)的方法是什么?