Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 26, 2012 21:00:37

Guljaca
От:
Зарегистрирован: 2011-07-11
Сообщения: 93
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4 и горячие клавиши

Читаю книгу о создании оконных приложений (Прохоренок Н.А). Автор расписал, как назначить комбинации клавиш с Alt+### и ни одного примера для кнопок. Хотелось бы узнать, как на них назначить одиночные клавиши на примере кода ниже (Тут уже на ‘Alt+З’ назначено - как заменить на ‘З’?).

class MyWindow(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.x = 0
        self.button = QtGui.QPushButton(u'&З' + ' ' + str(self.x))
        #self.button = QtGui.QKeySequence(QtCore.Qt.Key_E)
        self.button.setMaximumSize(100,100)
        self.vbox = QtGui.QVBoxLayout()
        self.vbox.addWidget(self.button)
        self.setLayout(self.vbox)
        self.connect(self.button, QtCore.SIGNAL('clicked()'), self.summ)
    def summ(self):
        self.x +=  1
        self.button.setText(u'&З' + ' ' + str(self.x))
        print window.x



Офлайн

#2 Авг. 26, 2012 22:17:08

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

PyQt4 и горячие клавиши

http://qt-project.org/doc/qt-4.8/qabstractbutton.html#details
http://qt-project.org/doc/qt-4.8/qabstractbutton.html#shortcut-prop

self.button.setShortcut(QtGui.QKeySequence(QtCore.Qt.Key_E))

Только когда текст меняется, нужно опять setShortcut вызывать.

Офлайн

#3 Авг. 27, 2012 00:03:03

Guljaca
От:
Зарегистрирован: 2011-07-11
Сообщения: 93
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4 и горячие клавиши

Ок, разобрался, спасибо! Сначала не понял последнее предложение. Надо было в метод эту строчку добавить.



Отредактировано Guljaca (Авг. 27, 2012 00:15:53)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version