2014-03-27 3 views
0

Я использую PySide для разработки приложений. Приложение готово, но я хочу использовать его только с помощью клавиатуры. Короче говоря, когда мы нажимаем клавишу «tab», он последовательно перемещает различные виджеты &, нажимая «enter», действие выполняется как «щелчок мышью».Навигация на клавиатуре для PySide GUI

Как достичь этого?

Заранее благодарен.

+0

Я бы подумал, что PySide поступил так по умолчанию? Разве это не так? –

+0

nope. Это не так, по крайней мере, в моем случае. – userx

+0

@ пользователь2732017. Каким образом это «не так»? Вы утверждаете, что табуляция вообще не перемещает фокус? – ekhumoro

ответ

2

Некоторые виджеты могут быть настроены так, чтобы интерпретировать вкладки в качестве ввода виджета, а не инструкции для изменения фокуса. Один из них - QTextEdit, в котором можно ввести ключ табуляции, чтобы вводить символы табуляции в тексте виджета, а не изменять фокус.

Вы можете остановить это поведение, установив my_text_edit.setTabChangesFocus(True) для соответствующих QTextEdit виджетов. Вы можете альтернативно установить это поведение в Qt Designer, если вы используете это для создания пользовательского интерфейса.

См: http://qt-project.org/doc/qt-4.8/qtextedit.html#tabChangesFocus-prop

Я полагаю, есть подобный метод вызов для любых других виджетов, которые не интерпретирует клавишу табуляции в качестве команды для изменения фокуса.

1

Помимо трехзначных предложений, если вы не хотите потерять функциональность клавиш табуляции внутри виджета захвата фокуса (текстовые элементы, таблицы), вы всегда можете использовать метки с определенными сочетаниями клавиш, чтобы пользователь мог сфокусироваться от фокус захват штучка:

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

делает Alt + п принять фокус на «имени» виджет, при условии, что Alt + п ускоритель является уникальным на сосредоточенном окне.

Смежные вопросы