PySide GUI 的键盘导航
我正在使用PySide来开发应用程序。应用程序已经做好了,但我想让它只用键盘来操作。简单来说,当我们按下' tab'键时,它可以依次切换不同的控件,而按下' enter'键时,就像点击鼠标一样执行某个操作。
请问怎么做到这一点呢?
提前谢谢你。
2 个回答
1
除了three_pineaples提到的,如果你不想在一些需要输入的地方(比如文本框、表格)失去Tab键的功能,你可以使用带有特定快捷键的标签,这样用户就可以从这些输入框中切换焦点:
name = QtGui.QLineEdit(self)
name_lbl = QtGui.QLabel('&Name:', self)
name_lbl.setBuddy(name)
这样设置后,按下Alt+n就可以把焦点移到“名字”这个输入框,只要这个Alt+n的快捷键在当前窗口中是唯一的。
2
有些小部件可以设置成把Tab键当作输入,而不是用来切换焦点。比如说,QTextEdit
这个小部件,你可以设置Tab键在文本中输入制表符,而不是用来切换到其他地方。
如果你想停止这种行为,可以对相应的QTextEdit
小部件使用my_text_edit.setTabChangesFocus(True)
这个设置。或者,如果你在用Qt Designer来生成界面,也可以在那里面设置这个选项。
更多信息可以查看这个链接:http://qt-project.org/doc/qt-4.8/qtextedit.html#tabChangesFocus-prop
我想其他小部件也有类似的方法,可以让Tab键不再用来切换焦点。