zoukankan      html  css  js  c++  java
  • PyQt5-按钮控件使用

    常见的按钮类包括:QPushButton、QToolButton、QRadioButton、QCheckBox、他们都继承自QAbstractButton类;

    QAbstractButton提供的状态:

    提供的信号:

    1、QPushButton

    常用方法

    例如:

     1 #QAbstractButton -QPushButton的使用
     2 from PyQt5.QtWidgets import  QPushButton,QVBoxLayout,QWidget,QApplication
     3 from PyQt5.QtGui import QIcon,QPixmap
     4 
     5 import sys
     6 
     7 class WindowClass(QWidget):
     8     def __init__(self,parent=None):
     9         super(WindowClass, self).__init__(parent)
    10         self.btn_1=QPushButton("Btn_1")
    11         self.btn_2=QPushButton("Btn_2")
    12         self.btn_3=QPushButton("&DownLoad")#快捷建设置,ALT+大写首字母
    13         self.btn_4 = QPushButton("Btn_4")
    14 
    15         self.btn_1.setCheckable(True)#设置已经被点击
    16         self.btn_1.toggle()#切换按钮状态
    17         self.btn_1.clicked.connect(self.btnState)
    18         self.btn_1.clicked.connect(lambda :self.wichBtn(self.btn_1))
    19 
    20         #self.btn_2.setIcon(QIcon('./image/add_16px_1084515_easyicon.net.ico'))#按钮按钮
    21         self.btn_2.setIcon(QIcon(QPixmap('./image/baidu.png')))
    22         self.btn_2.setEnabled(False)#设置不可用状态
    23         self.btn_2.clicked.connect(lambda :self.wichBtn(self.btn_2))
    24 
    25         self.btn_3.setDefault(True)#设置该按钮式默认状态的
    26         self.btn_3.clicked.connect(lambda :self.wichBtn(self.btn_3))
    27 
    28         self.btn_4.clicked.connect(lambda :self.wichBtn(self.btn_4))
    29 
    30         self.resize(400,300)
    31         layout=QVBoxLayout()
    32         layout.addWidget(self.btn_1)
    33         layout.addWidget(self.btn_2)
    34         layout.addWidget(self.btn_3)
    35         layout.addWidget(self.btn_4)
    36 
    37         self.setLayout(layout)
    38 
    39     def btnState(self):
    40         if self.btn_1.isChecked():
    41             print("Btn_1被单击")
    42         else:
    43             print("Btn_1未被单击")
    44     def wichBtn(self,btn):
    45         print("点击的按钮是:" , btn.text())
    46 
    47 if __name__=="__main__":
    48     app=QApplication(sys.argv)
    49     win=WindowClass()
    50     win.show()
    51     sys.exit(app.exec_())

     

    2、QRadioButton

    它也继承自QAbstracButton 类,提供了一组可供选择的按钮和文本标签,用户可以选择一项,标签用户显示对应的文本信息;

    可以切换on或者off,即checked或者unchecked;多个QRadioButton是一个按钮组合,如果多个独占的按钮组合,需要放在QGrouopBox或者QButtonGroup中;

    当切换on或者off时,会发送toggled信号,绑定这个信号,在按钮状态发生改变时,触发相应的行为;

    常用方法如下:

    clicked信号在每次单击按钮时都会发射该信号, 一般只有状态改变触发,则toggled信号更适合这种状态的监控;

    例如:

     1 #QRadioButton的使用
     2 from PyQt5.QtWidgets import  QPushButton,QVBoxLayout,QWidget,QApplication,QRadioButton,QHBoxLayout
     3 from PyQt5.QtGui import QIcon,QPixmap
     4 
     5 import sys
     6 
     7 class WindowClass(QWidget):
     8     def __init__(self,parent=None):
     9         super(WindowClass, self).__init__(parent)
    10         layout=QHBoxLayout()
    11         self.radio_1=QRadioButton("Btn_1")
    12         self.radio_2=QRadioButton("Btn_2")
    13 
    14         layout.addWidget(self.radio_1)
    15         layout.addWidget(self.radio_2)
    16         self.radio_2.setChecked(True)
    17         self.radio_2.toggled.connect(self.btnState)
    18         self.setLayout(layout)
    19 
    20     def btnState(self):
    21         if self.radio_2.isChecked()==True:
    22             print("radio_2被选中")
    23         else:
    24             print("radio_2取消选中")
    25 
    26 
    27 if __name__=="__main__":
    28     app=QApplication(sys.argv)
    29     win=WindowClass()
    30     win.show()
    31     sys.exit(app.exec_())

    3、QCheckBox的使用

    例如:

     1 #QCheckBox的使用
     2 from PyQt5.QtWidgets import  QPushButton,QVBoxLayout,QWidget,QApplication,QRadioButton,QHBoxLayout,QCheckBox,QGroupBox
     3 from PyQt5.QtGui import QIcon,QPixmap
     4 from PyQt5.QtCore import  Qt
     5 
     6 import sys
     7 
     8 class WindowClass(QWidget):
     9     def __init__(self,parent=None):
    10         super(WindowClass, self).__init__(parent)
    11         layout=QHBoxLayout()
    12         self.group=QGroupBox("checkBoxes")
    13         self.group.setFlat(True)
    14 
    15         self.checkbox_1=QCheckBox("&checkBox_1")
    16         self.checkbox_1.setChecked(True)
    17         self.checkbox_1.toggled.connect(self.btnState)
    18 
    19         self.checkbox_2= QCheckBox("&checkBox_2")
    20         self.checkbox_2.setChecked(False)
    21 
    22         self.checkbox_3 = QCheckBox("&checkBox_3")
    23         self.checkbox_3.setCheckState(Qt.PartiallyChecked)
    24 
    25         layout.addWidget(self.checkbox_1)
    26         layout.addWidget(self.checkbox_2)
    27         layout.addWidget(self.checkbox_3)
    28         self.group.setLayout(layout)
    29 
    30         mainLayout=QVBoxLayout()
    31         mainLayout.addWidget(self.group)
    32 
    33         self.setLayout(mainLayout)
    34 
    35     def btnState(self):
    36         print("状态:",self.checkbox_1.isChecked(),self.checkbox_1.checkState())
    37         if self.checkbox_1.isChecked()==True:
    38             print("checkbox_1被选中")
    39         else:
    40             print("checkbox_2取消选中")
    41 
    42 
    43 if __name__=="__main__":
    44     app=QApplication(sys.argv)
    45     win=WindowClass()
    46     win.show()
    47     sys.exit(app.exec_())

  • 相关阅读:
    Python基础之zip和enumerate
    python3中map()函数用法
    python列表推导式
    python面试常问的几个内置装饰器:@staticmethod、@classmethod和@property
    linux的解压与压缩
    python中 s f各种转移字符含义
    fixture 调用函数名传参(转载)
    3.css选择器
    实战有感3
    实战有感2-轮播图
  • 原文地址:https://www.cnblogs.com/ygzhaof/p/10059540.html
Copyright © 2011-2022 走看看