我正在使用PySide进行应用程序开发。应用程序是准备好了,但我想使用它只使用键盘。简而言之,当我们按下"tab"键时,它会按顺序导航各种小部件。按下"enter",动作就像"鼠标点击"。
如何实现这一点?
可以设置一些小部件,将制表键解释为小部件的输入,而不是更改焦点的指令。其中之一是QTextEdit
,其中tab键可以设置为在小部件的文本中输入制表符,而不是更改焦点。
您可以通过为适当的QTextEdit
小部件设置my_text_edit.setTabChangesFocus(True)
来停止此行为。如果你正在使用Qt Designer来生成UI,你也可以在Qt Designer中设置此行为。
见:http://qt project.org/doc/qt - 4.8 -/- qtextedit.html # tabChangesFocus-prop
我想对于任何其他不将tab键解释为更改焦点命令的小部件,都有类似的方法调用
除了three_pineaples的建议之外,如果您不想失去焦点抓取小部件(texttedits, tables)中的tab键功能,您可以使用带有特定键盘快捷键的标签,以允许用户将焦点从焦点抓取小部件中移开:
name = QtGui.QLineEdit(self)
name_lbl = QtGui.QLabel('&Name:', self)
name_lbl.setBuddy(name)
使Alt+n将焦点放在'name'小部件上,前提是Alt+n加速器在焦点窗口上是唯一的。