3
#!!/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の使用に関して2つの質問があります。私はQtにかなり慣れていないので、これらが少しおかしいと思われる場合は事前に謝罪します...

まず、QPushButtonを押したままにする方法、つまり選択したままにする方法はありますか?

次に、すべてのボタンを照会して、現在選択されているボタンを見つけますか?別のボタンがクリックされたときに解放されると仮定しますか?したがって、ボタンは1つしか選択されません。

どんな助けでも素晴らしいでしょう。ありがとうございました。

乾杯

4

1 に答える 1

5

まず、QPushButtonを押したままにする方法、つまり選択したままにする方法はありますか?

はい、「チェック可能」(setCheckable(true))にします。「チェック」すると「ダウン」になります。

...したがって、ボタンは1つしか選択されません。

そのためには、ボタンをに追加するだけQButtonGroupです。デフォルトでは排他的であるため、1つをクリックすると他のボタンが押されなくなります。

于 2012-08-02T11:46:32.360 に答える