如何保持选择 QPushbutton,然后找到按钮网格中选择的内容(pyQt)

use*_*144 3 python qt qpushbutton

#!!/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()
Run Code Online (Sandbox Code Playgroud)

大家好... 我有两个关于 QPushButton 使用的问题。我对 Qt 很陌生,所以如果这些看起来有点愚蠢,我提前道歉......

首先,有没有办法让 QPushButton 保持按下状态,即保持选中状态?

其次,查询所有按钮,找出当前选中的按钮是哪个?假设它会在单击另一个按钮时释放?所以只会选择一个按钮。

任何帮助都会很棒。谢谢你。

干杯

cma*_*t85 5

首先,有没有办法让 QPushButton 保持按下状态,即保持选中状态?

是的,您将其设置为“可检查”( setCheckable(true)),“检查”时它为“关闭”。

... 所以只会选择一个按钮。

为此,只需将您的按钮添加到QButtonGroup. 它默认为独占,因此单击一个将取消按下任何其他。