【发布时间】:2015-01-28 22:58:52
【问题描述】:
在从QTableView 的keyPressEvent() 方法中定义自定义信号发射时:
def keyPressEvent(self, e):
if e.text()=='w':
self.emit(SIGNAL('writeRequested'))
if e.text()=='o':
self.emit(SIGNAL('openRequested'))
我正在使用传入的e 参数来确定按下了哪个键盘键。使用这种“技术”,我当时只能使用一个角色。其次,我无法使用Ctrl+Key、Alt+Key 或Shift+Key 的组合。第三,我不知道Delete 和Backspaces 键是什么,所以我可以将它们与e.text() 进行比较。
所以问题真的很少......
在 Qt 文档中列出了所有键盘键的位置,因此它们可用于进行
e.text()=='keyboardKey'比较。如何使用我正在使用的“技术”处理双键盘组合键(例如
Ctrl+Key)(从视图的keyPressEvent()内部发送自定义信号?是否有其他更简单的方法来挂钩键盘键以触发方法或功能(这样用户可以在鼠标位于
QTableView上方时使用键盘快捷键来启动“动作”)?
【问题讨论】: