pyqt5中多组单选按钮的布局和使用

一、问题描述

同一页面上有多组单选按钮,怎样实现“只在指定几个单选项间互斥”?
如:
第一组按钮按主从机分类,第二组按钮按性别分类
在这里插入图片描述
用什么方法让系统知道“这是两组互斥按钮,而不是一组”?

二、解决方案

方法1、在页面布局设计时,做两个布局
在这里插入图片描述
用两个布局将两组互斥按钮分开,效果如下:
在这里插入图片描述

方法2、在脚本中增加一个QButtonGroup
group1 = QButtonGroup()
group1.addButton(self.ui.radioButton)
group1.addButton(self.ui.radioButton_2)
group1.addButton(self.ui.radioButton_3)
group1.addButton(self.ui.radioButton_4)

group2 = QButtonGroup()
group2.addButton(self.ui.radioButton_5)
group2.addButton(self.ui.radioButton_6)

如果不用布局,也可以在脚本中,用以上方式实现。

PyQt5是一个Python GUI框架,可以用于创建各种桌面应用程序。下面是创建两组单选按钮的示例代码: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton, QVBoxLayout class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): # 创建第一组单选按钮 radio1 = QRadioButton('Button 1') radio2 = QRadioButton('Button 2') radio3 = QRadioButton('Button 3') # 创建第二组单选按钮 radio4 = QRadioButton('Button 4') radio5 = QRadioButton('Button 5') radio6 = QRadioButton('Button 6') # 将单选按钮添加到垂直布局 vbox1 = QVBoxLayout() vbox1.addWidget(radio1) vbox1.addWidget(radio2) vbox1.addWidget(radio3) vbox2 = QVBoxLayout() vbox2.addWidget(radio4) vbox2.addWidget(radio5) vbox2.addWidget(radio6) # 将两个垂直布局放入水平布局 hbox = QHBoxLayout() hbox.addLayout(vbox1) hbox.addLayout(vbox2) self.setLayout(hbox) self.setGeometry(300, 300, 300, 150) self.setWindowTitle('Two groups of radio buttons') self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_()) ``` 上述代码创建了两组单选按钮,分别为Button 1, Button 2和Button 3,以及Button 4, Button 5和Button 6。这些单选按钮被分别放置在两个垂直布局,然后将这两个垂直布局放入一个水平布局。最后将这个水平布局设置为窗口的布局。 相关问题: 1. 如何设置单选按钮的默认选项? 2. 如何获取所选单选按钮的状态? 3. 如何为单选按钮设置图标或文本颜色?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值