PyQt5常用控件使用方法(按钮类控件)

PyQt5常用控件使用方法(文本类控件)

按钮类控件主要用来执行一些操作命令,通常搭配使用信号与槽来达到设计者的目标,比如我们可以使用self.pushButton.clicked.connect(MainWindow)来实现关闭窗口的功能,是PyQt5中必不可少的一类控件之一。

鉴于上一篇文章缺少对代码的分析,因此在本文开头会添加PyQt5中常见代码解析。

self.centralwidget = QtWidgets.QWidget(MainWindow)  # 创建一个QWidget对象作为窗口的中央部件
self.centralwidget.setObjectName("centralwidget")  # 设置中央部件名称
self.pushButton = QtWidgets.QPushButton(self.centralwidget)  # 创建一个QPushButton对象并将其放在self.centralwidget对象上
self.pushButton.setGeometry(QtCore.QRect(160, 170, 141, 41))  # 设置按钮坐标及大小
self.pushButton.setObjectName("pushButton")  # 设置按钮对象名称
self.pushButton.setText("关闭窗口")  # 设置按钮文本
self.pushButton.setEnabled(True)  # 设置按钮是否可用

MainWindow.setCentralWidget(self.centralwidget)  # 将之前创建的中央部件设置给主窗口
self.menubar = QtWidgets.QMenuBar(MainWindow)  # 创建一个菜单栏
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 22))  # 设置菜单栏的大小及坐标
self.menubar.setObjectName("menubar")  # 设置菜单栏的对象名称
MainWindow.setMenuBar(self.menubar)  # 将菜单栏设置到主窗口上
self.statusbar = QtWidgets.QStatusBar(MainWindow)  # 创建一个状态栏
self.statusbar.setObjectName("statusbar")  # 设置状态栏的对象名称
MainWindow.setStatusBar(self.statusbar)  # 将状态栏设置到主窗口上

self.retranslateUi(MainWindow)  # 通常用于界面文本的国际化或本地化相关操作

self.pushButton.clicked.connect(MainWindow.close)  # 当按钮被点击时,连接到关闭主窗口的操作
QtCore.QMetaObject.connectSlotsByName(MainWindow)  # 用于一些基于名称的信号与槽的自动连接机制

按钮类控件

主要包含PushButton(按钮),ToolButton(工具按钮),RadioButton(单选按钮),CheckBox(复选框),CommandLinkButton(命令链接按钮),本文主要介绍前四种按钮的使用方法(最后一个会挪到后期讲解)

1.PushButton

该控件是PyQt5中最常用的控件之一,被称为按钮控件;看起来像是被按下然后释放。它允许用户通过单击来执行操作,PushButton控件可以显示文本、图像等(使用信号与槽实现)。对用于QPushButton类。

方法说明
setText()设置按钮文本
text()获取按钮显示的文本
setIcon()为按钮设置图标,Qtcore.QIcon('图标路径')
setIconSize()设置图标大小,Qtcore.Qsize(int width, int height)
setEnable()设置按钮是否可用,false为不可用状态
setshortCut()设置按钮的快捷键,如<ALT+0>
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(160, 170, 141, 41))
self.pushButton.setObjectName("pushButton")
self.pushButton.setText("关闭窗口")
self.pushButton.setEnabled(True)

self.pushButton.clicked.connect(MainWindow.close)

通过点击关闭窗口,则实现关闭MainWindow的功能;setEnabled()参数设置为False时,结果同下

可以明显看出按钮颜色变灰,此时无法使用pushButton按钮。

结合上一篇文章所写的文本类控件,我们可以尝试着写一个登录窗口。

功能为:点击登录时弹出用户名+密码,点击退出则退出MainWindow。

self.pushButton.clicked.connect(self.login)
self.pushButton_2.clicked.connect(MainWindow.close)
def login(self):
    from PyQt5.QtWidgets import QMessageBox
        QMessageBox.information(MainWindow, "登录成功", "用户名:" + self.lineEdit.text() + "密码:" + self.lineEdit_2.text(), QMessageBox.Ok)

结果如下所示

2.ToolButton

工具按钮,对应QToolButton类。本质还是一个按钮,只是在按钮中提供了默认文本“...”和可选的箭头类型。当需要使用该控件时再做介绍,自此不再赘述(手动狗头)

3.RadioButton

为单选按钮(多选一),对应于QRadioButton类,选中其中一个按钮时,其余按钮不能被选中。

方法说明
setText()为按钮设置文本
text()获取按钮文本
setChecked()设置按钮是否为选中状态,True/False
isChecked()返回单选按钮的状态,True为选中状态,反之则反
常用信号
clicked在每次单击按钮时都会发射
toggled在按钮状态改变时才会发射(常用)也就是每切换一次就发射一次

在上面制作登录框的demo中,我们尝试着使用RadioButton来添加选择管理员或者普通用户选项。

如下图所示:

self.radioButton = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton.setGeometry(QtCore.QRect(160, 300, 80, 30))
self.radioButton.setText("管理员")
self.radioButton_2 = QtWidgets.QRadioButton(self.centralwidget)
self.radioButton_2.setGeometry(QtCore.QRect(260, 300, 100, 30))
self.radioButton_2.setText("普通用户")


self.radioButton.clicked.connect(self.info)

def info(self):
    from PyQt5.QtWidgets import QMessageBox
    if self.radioButton.isChecked():
       QMessageBox.information(MainWindow, "提示", "您选择的是:" + self.radioButton.text(), QMessageBox.Ok)

    elif self.radioButton_2.isChecked():
        QMessageBox.information(MainWindow, "提示", "您选择的是:" + self.radioButton_2.text(), QMessageBox.Ok)

j即可实现以下功能:

4.CheckedBox

复选框控件,可以选择多个选项or条件,对应于QCheckBox类。与radioButton相比,它可以选择多个选项。

内置参数如下所示

方法说明
QT.Checked()选中
Qt.PartiallyChecked()半选中
QT.Unchecked未选中
信号
stateChanged复选框的信号发生改变时发射(譬如显示复选框文本内容)

利用该控件,我们可以尝试做一个选课界面,选中任意课程后点击设置,会弹出窗口显示选择了哪几门课程。模板如下所示

self.checkBox = QtWidgets.QCheckBox(self.centralwidget)
self.checkBox.setGeometry(QtCore.QRect(140, 230, 150, 50))
self.checkBox.setObjectName("checkBox")
self.checkBox_2 = QtWidgets.QCheckBox(self.centralwidget)
self.checkBox_2.setGeometry(QtCore.QRect(300, 230, 100, 50))
self.checkBox_2.setObjectName("checkBox_2")
self.checkBox_3 = QtWidgets.QCheckBox(self.centralwidget)
self.checkBox_3.setGeometry(QtCore.QRect(140, 260, 100, 50))
self.checkBox_3.setObjectName("checkBox_3")
self.checkBox_4 = QtWidgets.QCheckBox(self.centralwidget)
self.checkBox_4.setGeometry(QtCore.QRect(300, 260, 100, 50))
self.checkBox_5 = QtWidgets.QCheckBox(self.centralwidget)
self.checkBox_5.setGeometry(QtCore.QRect(140, 290, 100, 50))
self.checkBox_5.setObjectName("checkBox_5")

self.pushButton.clicked.connect(self.getvlaue)

def getvlaue(self):
    oper = ""
    if self.checkBox.isChecked():
       oper += self.checkBox.text()
    if self.checkBox_2.isChecked():
       oper += '\n' + self.checkBox_2.text()
    if self.checkBox_3.isChecked():
       oper += '\n' + self.checkBox_3.text()
    if self.checkBox_4.isChecked():
       oper += '\n' + self.checkBox_4.text()
    if self.checkBox_5.isChecked():
       oper += '\n' + self.checkBox_5.text()
        from PyQt5.QtWidgets import QMessageBox
        QMessageBox.information(MainWindow, "提示", "您选择的课程如下" + '\n' + oper, QMessageBox.Ok)

实现功能如下:选择数学、物理两门课后点击设置,则弹出窗口显示创建成功。

本节内容已完结,如果有小伙伴希望了解选择列表类控件的使用请关注博主。

欢迎大佬在评论区批评指正。

  • 23
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt5 是一个用于创建桌面应用程序的 Python 模块,它包含了许多常用控件,如按钮、文本框、标签等,使用这些控件可以为用户提供一个可交互的图形化界面。 以下是一些常用PyQt5 控件及其使用方法: 1. QLabel:用于显示文本和图像。 ```python from PyQt5.QtWidgets import QApplication, QLabel, QWidget app = QApplication([]) window = QWidget() label = QLabel('Hello, World!', window) window.show() app.exec_() ``` 2. QPushButton:用于创建按钮。 ```python from PyQt5.QtWidgets import QApplication, QPushButton, QWidget app = QApplication([]) window = QWidget() button = QPushButton('Click me!', window) window.show() app.exec_() ``` 3. QLineEdit:用于创建文本输入框。 ```python from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget app = QApplication([]) window = QWidget() line_edit = QLineEdit(window) window.show() app.exec_() ``` 4. QComboBox:用于创建下拉框。 ```python from PyQt5.QtWidgets import QApplication, QComboBox, QWidget app = QApplication([]) window = QWidget() combo_box = QComboBox(window) combo_box.addItems(['Option 1', 'Option 2', 'Option 3']) window.show() app.exec_() ``` 5. QCheckBox:用于创建复选框。 ```python from PyQt5.QtWidgets import QApplication, QCheckBox, QWidget app = QApplication([]) window = QWidget() check_box = QCheckBox('Check me!', window) window.show() app.exec_() ``` 这些控件只是 PyQt5 中的一部分,你可以在官方文档中查找更多控件使用方法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值