как я могу сохранить выбранную кнопку QPushbutton, а затем найти то, что выбрано в сетке кнопок (pyQt)

#!!/usr/bin/python

# Qt modules
from PyQt4 import QtCore, QtGui
import sys

class gui(QtGui.QDialog):
    def __init__(self, parent=None):
        QtGui.QDialog.__init__(self, parent)

        self.setWindowTitle('Grid of buttons')
        self.resize(450, 300)


#------------------------------------------------------------------------------ 
#       WIDGETS
#------------------------------------------------------------------------------

        self.grid = QtGui.QGridLayout()

        btnNum = 1
        columnCount = 0
        rowCount = 0

        while btnNum != 26:
            button = QtGui.QPushButton(str(btnNum))
            self.grid.addWidget(button, rowCount, columnCount)
            btnNum += 1

            if columnCount == 4:
                columnCount = 0
                rowCount += 1
            else:
                columnCount += 1

#------------------------------------------------------------------------------ 
#       LAYOUT
#------------------------------------------------------------------------------ 
        self.idChannelGroup = QtGui.QGroupBox("My Button Layout")
        self.idChannelGroup.setLayout(self.grid)

        self.mainLayout = QtGui.QVBoxLayout()
        self.mainLayout.addWidget(self.idChannelGroup)

        self.setLayout(self.mainLayout)   

def main():

    app = QtGui.QApplication(sys.argv)
    ex = gui()
    ex.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

Привет всем... У меня два вопроса относительно использования QPushButton. Я новичок в Qt, поэтому заранее извиняюсь, если это покажется немного глупым...

Во-первых, есть ли способ удерживать кнопку QPushButton нажатой, т.е. оставаться выбранной?

Во-вторых, запросить все кнопки и узнать, какая кнопка выбрана в данный момент? Предполагая, что он будет выпущен при нажатии другой кнопки? Таким образом, будет выбрана только одна кнопка.

Любая помощь будет здорово. Спасибо.

Ваше здоровье


person user1571144    schedule 02.08.2012    source источник


Ответы (1)


Во-первых, есть ли способ удерживать кнопку QPushButton нажатой, т.е. оставаться выбранной?

Да, вы делаете его «проверяемым» (setCheckable(true)), он «отключен», когда «отмечен».

... Таким образом, будет выбрана только одна кнопка.

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

person cmannett85    schedule 02.08.2012