c++ - 在 Qt 虚拟键盘上实现 Backspace 和 Enter 键

标签 c++ qt keyboard

我正在基于示例 here 在输入面板小部件中实现虚拟键盘。我可以通过发出这样的信号来让字符出现在文本小部件中 emit characterGenerate( char ) - 请参阅 buttonClicked(QWidget *w) 方法example 。不幸的是,这种方法不适用于 Enter 和 Backspace 键。我希望就可能的解决方法提供建议。

如果重要的话,我正在使用 C++ 进行开发。

最佳答案

考虑链接示例中的 MyInputPanelContext::sendCharacter 函数。当QKeyEvent keyPress对象被构造时,character.unicode()被用作第二个参数。但是,您也可以使用 Qt::Key 值作为第二个参数。例如:

QKeyEvent keyPress(QEvent::KeyPress, Qt::Key_Backspace, Qt::NoModifier);

您应该重写此方法以接受将传递给 QKeyEvent 构造函数的 int 参数,并将 characterGenerate(QChar) 信号更改为 keyGenerate(int) 因此您可以使用相同的方法发送特殊键 (Qt::Key_Backspace) 或字符键 (character.unicode())信号和槽。

关于c++ - 在 Qt 虚拟键盘上实现 Backspace 和 Enter 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17621741/

相关文章:

c++ - QVector 和 QMap。程序崩溃,这是无效代码吗?

c++ - 在现有 Qt 项目中从源代码构建第 3 方库

c++ - 使用 Qt 开发音频游戏?

IOS 8 改变键盘高度

c++ - QDialog - 更改默认标志以排除?按钮

keyboard - 通过HID设备检测操作系统

c++ - int* const* foo(int x);是一个有效的 C 函数原型(prototype)。你怎么 "read"这个返回类型?

c++ - 如何使用 POSIX select()

c++ - 使用 C++/Visual C++ 控制光标和键盘

c++ - Qt 信号槽 : Signal is sent but Slot is not called