python - 在 PyQt 中对单选按钮进行分组

标签 python qt4 pyqt pyqt4

import sys
from PyQt4 import QtCore, QtGui

class Class1(QtGui.QMainWindow):
    def __init__(self):
        super(Class1, self).__init__()
        self.func()

    def func(self):

        r0=QtGui.QRadioButton("0",self)
        r1=QtGui.QRadioButton("1",self)
        ra=QtGui.QRadioButton("a",self)
        rb=QtGui.QRadioButton("b",self)
        r0.move(100,100)
        r1.move(400,100)
        ra.move(100,400)
        rb.move(400,400)
        number_layout=QtGui.QButtonGroup()
        letter_layout=QtGui.QButtonGroup()
        number_layout.addButton(r0)
        number_layout.addButton(r1)
        letter_layout.addButton(ra)
        letter_layout.addButton(rb)
        layout=QtGui.QHBoxLayout(self)
        self.show()




def main():
    app = QtGui.QApplication(sys.argv)
    mw = Class1()
    mw.show()
    sys.exit(app.exec_())


if __name__=='__main__':
    main()

我正在尝试将R0,R1和RA分组,即在检查R0时,R1应不受控制,对RA或RB状态没有影响。我怎样才能做到这一点?该代码表明了我到目前为止所做的尝试。

最佳答案

QMainWindow 已经提供了布局,您不能简单地用自己的布局替换它。要么从普通的 QWidget 继承,要么创建一个新的小部件并向其添加布局和按钮。

你的命名也很困惑,QButtonGroup 不是布局。它实际上不提供任何可见的 UI。如果您需要一个对按钮进行分组的 UI 元素,您应该查看 QGroupBox

下面是您上面的一个简单变体:

def func(self):
    layout=QtGui.QHBoxLayout()  # layout for the central widget
    widget=QtGui.QWidget(self)  # central widget
    widget.setLayout(layout)

    number_group=QtGui.QButtonGroup(widget) # Number group
    r0=QtGui.QRadioButton("0")
    number_group.addButton(r0)
    r1=QtGui.QRadioButton("1")
    number_group.addButton(r1)
    layout.addWidget(r0)
    layout.addWidget(r1)

    letter_group=QtGui.QButtonGroup(widget) # Letter group
    ra=QtGui.QRadioButton("a")
    letter_group.addButton(ra)
    rb=QtGui.QRadioButton("b")
    letter_group.addButton(rb)
    layout.addWidget(ra)
    layout.addWidget(rb)

    # assign the widget to the main window
    self.setCentralWidget(widget)
    self.show()

关于python - 在 PyQt 中对单选按钮进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14798058/

相关文章:

python - PyTables 中的这个错误是什么?

python - 在 Python 中跳过迭代变量的 N 个值的最佳方法是什么?

qt4 - Qt4中的USB条码阅读器

c++ - 自动调整 QDockWidget 内容的大小

qt - qt4 中的 QListViewItem 发生了什么?

python - 在 Windows Vista x64 上部署 PyQt 应用程序

python - 单击 QDockWidget 的选项卡时的通知?

python - 如何从 QListWidget 拖放到 ComboBox 中

python - 不使用 collection.deque 旋转列表

python - 将负向前瞻限制在子字符串正则表达式之间