PyQt5 之QButtonGroup

QButtonGroup 继承自 QObject,不是一个可视类,它主要是对按键进行分组,便于按键管理。

一、案例

from PyQt5.Qt import *
import sys

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('QButtonGroup-使用')
        self.resize(500, 400)
        self.setup_ui()
    
    def setup_ui(self):
        rg = QButtonGroup(self)
        
        r1 = QRadioButton(self)
        r1.setText('')
        # 设置第一个单选框被选中
        r1.setChecked(True)
        r1.setIcon(QIcon("xxx.png"))
        r1.move(200, 100)
        
        r2 = QRadioButton(self)
        r2.setText('')
        r2.move(300, 100)
        
        
        rg.addButton(r1)
        rg.addButton(r2)
        
        # 设置ID为1
        rg.setId(r1, 1)
        rg.setId(r2, 2)
        
        def test(val):
            print(rg.id(val))
        
        rg.buttonClicked.connect(test)
        
        # 设置rg不互斥
        rg.setExclusive(False)
        
        # 键移出rg
        rg.removeButton(r1)
        # 打印所有按钮
        print(rg.buttons())
        # 打印ID=2的按钮
        print(rg.button(2))
        # 打印被按下的按钮
        print(rg.checkedButton())
        
if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())

 

posted @ 2020-05-16 14:13  样子2018  阅读(1634)  评论(0编辑  收藏  举报