PySide GUI 的键盘导航

0 投票
2 回答
701 浏览
提问于 2025-04-18 00:06

我正在使用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键不再用来切换焦点。

撰写回答