【2.PyQt5 GUI 常用界面组件】2.按钮组件

2.按钮组件

  • QPushButton

QPushButton是常用的按钮组件,在前面的示例中我们都是使用它的clicked()信号来编写对应的槽函数。

QPushButton组件的重要属性:

属性功能
checkable可选中,如果将该属性设置为True,QPushButton可以当作CheckBox或RadioButton来使用

下面我们通过示例来演示该属性的使用方法,界面设计如下:

 

窗体上的组件及属性如下:

按钮分组objectName属性设置描述
操作系统pushButtonWindowscheckable=True autoExclusive=True flat=True具有QRadioButton组件的效果
pushButtonLinux同上
pushButtonMac同上
编程语言pushButtonPythoncheckable=True autoExclusive=False具有QCheckBox组件的效果
pushButtonC同上
pushButtonCpp同上
pushButtonGo同上
pushButtonJava同上
pushButtonOther同上
pushButtonOk单击后根据用户选择生成文本
textBrowserResult用于显示文本结果
pushButtonExit退出按钮

在界面设计时,需要对按钮进行分组,同一容器内的同类型的QPushButton按钮自动分成一组。

主程序代码如下:

# coding: utf-8
import sys
from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5.QtCore import pyqtSlot
from ui_widget import Ui_Widget
​
​
class QAppWidget(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.__ui = Ui_Widget()
        self.__ui.setupUi(self)
​
        self.__ui.pushButtonPython.clicked.connect(self.do_selectLang)
        self.__ui.pushButtonC.clicked.connect(self.do_selectLang)
        self.__ui.pushButtonCpp.clicked.connect(self.do_selectLang)
        self.__ui.pushButtonGo.clicked.connect(self.do_selectLang)
        self.__ui.pushButtonJava.clicked.connect(self.do_selectLang)
        self.__ui.pushButtonOther.clicked.connect(self.do_selectLang)
​
        self.os = 'Windows'
        self.langs = []
​
    @pyqtSlot(bool)
    def on_pushButtonWindows_clicked(self, checked):
        if checked: self.os = 'Windows'
        else: self.os = ''
​
    @pyqtSlot(bool)
    def on_pushButtonLinux_clicked(self, checked):
        if checked: self.os = 'Linux'
        else: self.os = ''
​
    @pyqtSlot(bool)
    def on_pushButtonMac_clicked(self, checked):
        if checked: self.os = 'Mac'
        else: self.os = ''
​
    def do_selectLang(self):
        self.langs = []
        if self.__ui.pushButtonPython.isChecked(): self.langs.append("Python")
        if self.__ui.pushButtonC.isChecked(): self.langs.append("C")
        if self.__ui.pushButtonCpp.isChecked(): self.langs.append("C++")
        if self.__ui.pushButtonGo.isChecked(): self.langs.append("Go")
        if self.__ui.pushButtonJava.isChecked(): self.langs.append("Java")
        if self.__ui.pushButtonOther.isChecked(): self.langs.append("其他")
​
    def on_pushButtonOk_clicked(self):
        txt: str = '您使用的操作系统是:{0}\n您喜欢的编程语言是:{1}'.format(self.os, '.'.join(self.langs))
        self.__ui.textBrowserResult.setText(txt)
​
if __name__ == '__main__':
    app = QApplication(sys.argv)
    widget = QAppWidget()
    widget.show()
    sys.exit(app.exec_())

程序运行效果如下:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Janeb1018

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值