QButtonGroup按鈕組


 

繼承  QObject   

提供 一個抽象的按鈕容器, 可以將多個按鈕划分為一組,不具備可視化的效果,一般放的都是可以被檢查的按鈕

 

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton,QButtonGroup

class Demo(QWidget):
    def __init__(self):
        super(Demo, self).__init__()
        self.resize(300,300)
        self.rb1=QRadioButton('',self)
        self.rb2 = QRadioButton('', self)
        self.rb3 = QRadioButton('', self)
        self.rb4 = QRadioButton('', self)
        self.rb = QRadioButton('人妖', self)
        self.rb1.move(50,50)
        self.rb2.move(50, 80)
        self.rb.move(50, 110)
        self.rb3.move(150, 50)
        self.rb4.move(150, 80)
        self.rb1.setChecked(True)
        zu1=QButtonGroup(self)  #創建一個按鈕分組實例
        zu2 = QButtonGroup(self)
        zu1.addButton(self.rb1,1)   #給按鈕分組實例添加按鈕
        #參數2 給按鈕設置一個id,不同分組的id可以重復
        #如果id為-1,則將為該按鈕分配一個id。自動分配的ID保證為負數,從-2開始。
        zu1.addButton(self.rb2,2)
        zu1.addButton(self.rb, 3)
        zu2.addButton(self.rb3)
        zu2.addButton(self.rb4)

        print(zu1.buttons())  #返回按鈕組中的所有按鈕
        print(zu1.button(2))  #返回按鈕組中指定按鈕
        print(zu1.checkedButton())  #返回按鈕組中被選中的按鈕
        zu1.removeButton(self.rb)   #從按鈕組中移除指定按鈕;不是刪除按鈕

        zu2.setId(self.rb3,4)   #給組中的按鈕設置id
        zu2.setId(self.rb4, 5)
        print(zu2.id(self.rb3))  #返回按鈕id
        #如果不存在此按鈕,則返回-1
        print(zu1.checkedId())   #返回選中按鈕的id

        zu2.setExclusive(True)   #獨占 ???

        #zu2.buttonClicked.connect(self.A)  #組中按鈕被點擊時發出信號
        #會向槽函數傳遞被點擊的按鈕
        #zu2.buttonClicked[int].connect(self.A)  # 組中按鈕被點擊時發出信號
        # [int]會向槽函數傳遞被點擊按鈕的id,而不是傳遞按鈕

        zu2.buttonToggled.connect(self.B)   #當按鈕組中的按鈕被切換狀態時, 發射此信號
        #會向槽函數傳遞狀態發生改變的按鈕

    def B(self,i):
        print('zu2切換了按鈕',i)

    def A(self,i):
        print('zu2被點擊了',i)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    demo = Demo()
    demo.show()
    sys.exit(app.exec_())

 

buttonPressed(int/QAbstractButton)      當按鈕組中的按鈕被按下時, 發射此信號

buttonReleased(int/QAbstractButton)     當按鈕組中的按鈕被釋放時, 發射此信號

 

 

 

天子驕龍

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM