2014-03-27 109 views
0

我使用PySide進行應用程序開發。應用程序已準備就緒,但我想僅使用鍵盤來使用它。總之,當我們按下'tab'鍵時,它按順序導航各種小部件,點擊'enter',動作就像'點擊鼠標'一樣。PySide GUI的鍵盤導航

如何實現這一目標?

在此先感謝。

+0

我想PySide會默認這樣做?情況並非如此嗎? –

+0

nope。在我的情況中至少不是這樣。 – userx

+0

@ user2732017。它以什麼方式「不是那樣」?你是否聲稱這個標籤根本不會改變焦點? – ekhumoro

回答

2

一些小部件可以設置爲將標籤鍵解釋爲小部件的輸入,而不是改變焦點的指令。其中之一是QTextEdit,其中的tab鍵可以設置爲在widget的文本中輸入製表符而不是改變焦點。

您可以通過爲相應的QTextEdit小部件設置my_text_edit.setTabChangesFocus(True)來停止此行爲。如果您正在使用它來生成用戶界面,則可以在Qt Designer中設置此行爲。

請參見:http://qt-project.org/doc/qt-4.8/qtextedit.html#tabChangesFocus-prop

我想有一個類似的方法調用中未解釋tab鍵作爲命令來改變焦點的任何其他部件。

1

除了three_pineaples的建議之外,如果您不想失去焦點抓取小部件(textedits,表格)中的tab鍵功能,您總是可以使用具有特定鍵盤快捷鍵的標籤以允許用戶遠離焦點重點抓小部件:

name = QtGui.QLineEdit(self) 
name_lbl = QtGui.QLabel('&Name:', self) 
name_lbl.setBuddy(name) 

使得Alt + N鍵採取集中於「名」窗口小部件,提供了Alt + N加速器是焦點窗口上是唯一的。