我正在基于示例 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/