PyQt5基础控件

2024-08-21 11:28
文章标签 基础 pyqt5 控件

本文主要是介绍PyQt5基础控件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、按钮

(一)普通按钮QPushButton

1.创建按钮控件

QPushButton():创建一个无父控件的按钮控件QPushButton(parent):创建控件的同时, 设置父控件QPushButton(text, parent):创建控件的同时, 设置提示文本和父控件QPushButton(icon, text, parent):创建控件的同时, 设置图标, 提示文本和父控件

2.设置快捷键

setShortCut(text)

3.设置菜单

setMenu(QMenu):设置菜单menu():获取菜单showMenu():展示菜单

4.边框是否保持扁平

setFlat(bool):设置了此属性,则除非按下按钮,否则大多数样式都不会绘制按钮背景isFlat():获取当前按钮边框是否扁平

5.设置按钮是否被选中

setCheckable()设置按钮是否已经被选中,如果设置True,则表示按钮将保持已点击和释放状态

 6.设置按钮是否可以使用

setEnabled()设置按钮是否可以使用,当设置为False时,按钮变成不可用状态,点击它不会发射信号

 7.返回按钮的状态

isChecked()返回按钮的状态,返回值为True或者False

8.设置按钮的默认状态

setDefault()设置按钮的默认状态

9.设置按钮名称

setText()设置按钮的显示文本

10.返回按钮名称

text()返回按钮的显示文本

 11.在按钮状态之间进行切换

toggle()在按钮状态之间进行切换

(二)单选按钮QRadioButton

1.简介

        在 PyQt5 这个强大的 Python GUI 框架中,QRadioButton 是一个常见的控件,用于表示一个可以被用户选择或取消选择的单选按钮。与 QCheckBox 不同,QRadioButton 允许用户从一组选项中选择一个,而不是选择多个。这种控件在创建用户友好的界面时非常有用,特别是在需要用户从一系列选项中进行选择时。

        PyQt5 的 QRadioButton 控件继承自 QAbstractButton 类,因此它拥有许多与按钮相关的通用方法和属性。下面我们将通过一些示例代码来介绍它的基本用法。

2.属性和方法

(1)设置按钮是否被选中

可以改变单选钮的选中状态,如果设置为True,则表示单选钮将保持已点击或释放状态。

setCheckable()

(2)返回单选按钮的状态。设置返回值True或False

isChecked()

(3)设置单选按钮的显示文本

setText()

(4)返回单选钮的显示文本

text()

(5)设置单选按钮的工具提示

setToolTip(str)

(6)切换单选按钮的选中状态

toggle()

3.方法

clicked 

(三)复选框QCheckBox

1.QCheckBox复选框的三种状态:

        Qt.Checked: 值为2,表示组件被选中

        Qt.PartiallyChecked: 值为1,表示组件被半选中

        Qt.Unchecked: 值为0,表示组件没有被选中

2.属性和方法

(1)设置复选框的显示文本;

setText()

(2)设置复选框是否可用,设置为False时,复选框不可用;

setEnabled()

(3)返回复选框的显示文本;

text()

(4)返回复选框的选中状态;

isChecked()

(5)设置复选框的状态,设置为True表示选中,False表示取消选中的复选框;

setChecked()

(6)设置复选框为一个三态复选框

setTriState()

(7)三态复选框的状态设置,具体设置见三态复选框状态表。

setCheckState()

3.信号

stateChanged 选中或清除选中时, 发射此信号

(四)工具按钮QToolButton

1.简介

2.方法和属性

(1)创建工具按钮

tool_button = QToolButton(window)

(2)设置文本

setText()

(3)设置图标

setIcon()

(4)设置图标大小

tool_button.setIconSize(QtCore.QSize(32, 32))

(5)设置工具提示

tool_button.setToolTip("这是一个工具按钮")

(6)设置按钮样式


# 只显示图标
tool_button.setToolButtonStyle(Qt.ToolButtonIconOnly)# 只显示文本
tool_button.setToolButtonStyle(Qt.ToolButtonTextOnly)# 文本显示在图标旁边
tool_button.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)# 文本显示在图标下方
tool_button.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)# 遵循系统风格
tool_button.setToolButtonStyle(Qt.ToolButtonFollowStyle)

(7)设置菜单

setMenu()

(8)设置弹出菜单显示模式

# 设置弹出菜单的显示模式
# Qt.DelayedPopup:当按钮被点击并释放后显示菜单
# Qt.InstantPopup:当按钮被点击时立即显示菜单
# Qt.MenuButtonPopup:按钮旁边始终显示一个小的箭头,点击箭头时显示菜单
tool_button.setPopupMode(Qt.DelayedPopup)

(9)可检查状态

setCheckable()

示例代码:

tool_button.setCheckable(True)# 检查按钮是否被选中
if tool_button.isChecked():print("按钮被选中")
else:print("按钮未被选中")# 也可以通过点击信号来切换状态
tool_button.clicked.connect(lambda: print(f"按钮状态:{'选中' if tool_button.isChecked() else '未选中'}"))

 (10)设置显示的箭头类型

# 无箭头
tool_button.setArrowType(Qt.NoArrow)# 向上箭头
tool_button.setArrowType(Qt.UpArrow)# 向下箭头
tool_button.setArrowType(Qt.DownArrow)# 向左箭头
tool_button.setArrowType(Qt.LeftArrow)# 向右箭头
tool_button.setArrowType(Qt.RightArrow)

(11)自定义大小与布局

         QToolButton的大小默认是自动调整的,但你也可以通过setFixedSize()setGeometry()方法来手动设置其大小。此外,还可以结合布局管理器(如QHBoxLayoutQVBoxLayout等)来更好地控制QToolButton的布局。

示例代码:

# 设置固定大小
tool_button.setFixedSize(100, 50)# 或者在布局中设置
# 假设你有一个布局实例layout
# layout.addWidget(tool_button)

(12)设置自动提升效果

tool_button.setAutoRaise(True)

         QToolButton支持自动浮起效果,即当鼠标悬停在按钮上时,按钮会呈现3D效果。通过setAutoRaise()方法可以设置是否启用此效果。

3. 信号

学习资料来源:【python】PyQt5中QToolButton的详细用法教学与应用实战_pyqt qtoolbutton-CSDN博客

二、QLabel

1.简介

        QLabel是一个用于显示文本和图像的简单控件。通过掌握它的各种特性和功能,你可以使你的PyQt5应用更加丰富和互动。无论是显示数据、响应用户操作还是增强界面美观,QLabel都是一个值得深入了解和使用的工具。

2.属性和方法

(1)设置标签显示的文本内容

setText(text)

(2)设置标签显示的图像内容

setPixmap(pixmap)

(3)设置文本在标签中的对齐方式

setAlignment(alignment)

(4)设置标签的样式表

setStyleSheet(styleSheet)

(5)清除标签的内容

clear()

(6)设置自动换行

setWordWrap(True)

(7)设置提示文本

setToolTip

(8)设置文本缩进值

setIndent()

(9)返回所选择的字符

selectedText()

(10)设置 QLabel 的助记符及 buddy(伙伴)

        即使用 QLabel 快捷键,会在快捷键后将焦点设置到其 buddy 上;buddy 可以是任意 widget 控件。使用 setBuddy(QWidget*) 设置,其 QLabel 必须是文本内容,并且使用“&”符号设置了助记符

setBuddy()

setBuddy():可以将两个控件进行关联,通过快捷键将QLable的焦点关联到对应控件上,使用最多的就是QLineEdit()控件,示例如下:

		label = QLabel('&Password', self)ling_edit = QLineEdit(self)label.setBuddy(ling_edit)

(11)

(12)

3.信号

linkActivated     当标签中的链接被点击时发射linkHovered    当鼠标悬停在带有链接的文本上时发射customContextMenuRequested    当用户请求上下文菜单时发射

三、QLineEdit

1.简介

学习资料:【python】PyQt5中单行文本输入控件QLineEdit的详细解析与应用实战_pyqt5 qlineedit-CSDN博客

2.属性和方法

(1)设置和获取文本

setText(str):用于设置QLineEdit控件中的文本内容。
text():用于获取当前控件中的文本内容。

(2)清除文本

clear():用于清除QLineEdit控件中的文本内容

(3)设置输入模式

setEchoMode(EchoMode):用于设置QLineEdit控件的输入模式,如正常模式、密码模式等。
echoMode():用于获取当前的输入模式。

 示例代码:

self.line_edit.setEchoMode(QLineEdit.Password)
mode = self.line_edit.echoMode()
print(mode)  # 输出: 2 (表示密码模式)

(4)设置文本对齐

setAlignment(Qt.Alignment):用于设置QLineEdit控件中文本的对齐方式,如左对齐、右对齐、居中对齐等。
alignment():用于获取当前的对齐方式。

(5)设置占位符文本

setPlaceholderText(str):用于设置QLineEdit控件的占位符文本,即当控件为空时显示的提示文本。
placeholderText():用于获取当前的占位符文本。

示例代码:

self.line_edit.setPlaceholderText("请输入文本...")
placeholder = self.line_edit.placeholderText()
print(placeholder)  # 输出: 请输入文本...

3.方法

(1)文本改变信号

        textChanged(str):每当QLineEdit中的文本发生变化时,都会发出此信号。注意,此信号的参数是改变后的文本,但在实践中,通常不需要使用此参数,因为你可以直接从QLineEdit对象中获取文本。

def on_text_changed():text = self.line_edit.text()print(f"文本已改变: {text}")self.line_edit.textChanged.connect(on_text_changed)

(2)编辑开始和结束信号

        editingFinished():当QLineEdit失去焦点(即用户完成编辑)时,会发出此信号。
        editingStarted():虽然QLineEdit没有直接提供editingStarted信号,但你可以通过textChanged信号和检查文本是否为空来模拟这个行为。

def on_editing_finished():text = self.line_edit.text()print(f"编辑完成: {text}")self.line_edit.editingFinished.connect(on_editing_finished)# 模拟editingStarted的示例
def on_text_changed_for_start():if self.line_edit.text():  # 如果文本非空,则可能视为编辑开始print("编辑开始")# 注意:这里可能需要额外的逻辑来确保只在真正开始编辑时触发
# 因为textChanged会在每次文本变化时触发,包括编辑开始时

(3)验证输入

        虽然QLineEdit本身不直接提供输入验证的功能,但你可以通过结合信号和槽来实现。例如,你可以在editingFinished信号的槽函数中检查文本是否符合特定格式,如果不符合,则显示错误信息或重置文本。

def validate_input():text = self.line_edit.text()if not text.isdigit():  # 假设我们只接受数字self.line_edit.setText("请输入数字!")# 可以选择性地显示一个错误信息给用户self.line_edit.editingFinished.connect(validate_input)

四、QTextEdit

1.简介

        QTextEdit是PyQt中用于显示和编辑文本的强大组件之一。它提供了丰富的功能,可以显示普通文本、富文本和HTML文本,并支持各种格式的编辑和交互。

2.属性和方法

(1)设置文本内容

textEdit.setText("Hello, PyQt5!")

(2)设置HTML格式的文本内容

textEdit.setHtml("<h1>Hello, PyQt5!</h1>")

(3)获取纯文本内容

text = textEdit.toPlainText()

(4)获取HTML格式的内容

html = textEdit.toHtml()

(5)清除文本内容

textEdit.clear()

(6)在光标位置插入纯文本

textEdit.insertPlainText("Inserted Text")

(7)在光标位置插入HTML格式的文本

textEdit.insertHtml("<b>Inserted</b> Text")

(8)在文本中查找指定文本,并将光标移到找到的位置

textEdit.find("search text")

(9)选择所有文本

textEdit.selectAll()

3.信号

1.cursorPositionChanged: 当光标位置发生变化时发射

textEdit.cursorPositionChanged.connect(handleCursorPositionChanged)

2.textChanged: 当文本内容发生改变时发射

textEdit.textChanged.connect(handleTextChanged)

3.copyAvailable(available: bool): 当有文本可复制时发射

textEdit.copyAvailable.connect(handleCopyAvailable)

4.redoAvailable(available: bool): 当可以执行重做操作时发射

textEdit.redoAvailable.connect(handleRedoAvailable)

5.undoAvailable(available: bool): 当可以执行撤销操作时发射

textEdit.undoAvailable.connect(handleUndoAvailable)

五、QComboBox

1.简介

        QComboBox对象显示一个下拉列表可供选择,是一个集按钮和下拉选项于一体的控件,也称做下拉列表框。

2.属性和方法

(1)增加单个选项内容

addItem()

(2)增加多个, 参数为列表

addItems()

(3)删除下拉列表中的所有选项

Clear()

(4)返回下拉列表中的所有项目数量

Count()

(5)返回当前选中项的文本

currentText()

(6)获取索引为i的item文本

itemText(i)

(7)设置索引为i的item文本

setItemText(i)

(8)返回当前选中项的索引

currentIndex

3.信号

(1)currentIndexChanged()

下拉选项的索引发生变化时发射,如果本次选中的和之前的相同,则不会发射

(2)activated()

选中一个下拉选项的时候发射,不管是否和上次相同

(3)highlight()

不管焦点停留在哪个上面都会触发此信号,但是返回的currentText仍为蓝色显示的条目,而不是光标移动到的条目,传递的第二个参数是光标移动到的index

六、QGroupBox

这篇关于PyQt5基础控件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1093021

相关文章

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-

python操作redis基础

《python操作redis基础》Redis(RemoteDictionaryServer)是一个开源的、基于内存的键值对(Key-Value)存储系统,它通常用作数据库、缓存和消息代理,这篇文章... 目录1. Redis 简介2. 前提条件3. 安装 python Redis 客户端库4. 连接到 Re

Python+PyQt5实现MySQL数据库备份神器

《Python+PyQt5实现MySQL数据库备份神器》在数据库管理工作中,定期备份是确保数据安全的重要措施,本文将介绍如何使用Python+PyQt5开发一个高颜值,多功能的MySQL数据库备份工具... 目录概述功能特性核心功能矩阵特色功能界面展示主界面设计动态效果演示使用教程环境准备操作流程代码深度解

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2

Python+PyQt5实现文件夹结构映射工具

《Python+PyQt5实现文件夹结构映射工具》在日常工作中,我们经常需要对文件夹结构进行复制和备份,本文将带来一款基于PyQt5开发的文件夹结构映射工具,感兴趣的小伙伴可以跟随小编一起学习一下... 目录概述功能亮点展示效果软件使用步骤代码解析1. 主窗口设计(FolderCopyApp)2. 拖拽路径

WinForms中主要控件的详细使用教程

《WinForms中主要控件的详细使用教程》WinForms(WindowsForms)是Microsoft提供的用于构建Windows桌面应用程序的框架,它提供了丰富的控件集合,可以满足各种UI设计... 目录一、基础控件1. Button (按钮)2. Label (标签)3. TextBox (文本框

PyQt5 QDate类的具体使用

《PyQt5QDate类的具体使用》QDate是PyQt5中处理日期的核心类,本文主要介绍了PyQt5QDate类的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录核心功能常用方法及代码示例​1. 创建日期对象​2. 获取日期信息​3. 日期计算与比较​4. 日

Spring Boot集成SLF4j从基础到高级实践(最新推荐)

《SpringBoot集成SLF4j从基础到高级实践(最新推荐)》SLF4j(SimpleLoggingFacadeforJava)是一个日志门面(Facade),不是具体的日志实现,这篇文章主要介... 目录一、日志框架概述与SLF4j简介1.1 为什么需要日志框架1.2 主流日志框架对比1.3 SLF4

Spring Boot集成Logback终极指南之从基础到高级配置实战指南

《SpringBoot集成Logback终极指南之从基础到高级配置实战指南》Logback是一个可靠、通用且快速的Java日志框架,作为Log4j的继承者,由Log4j创始人设计,:本文主要介绍... 目录一、Logback简介与Spring Boot集成基础1.1 Logback是什么?1.2 Sprin

MySQL复合查询从基础到多表关联与高级技巧全解析

《MySQL复合查询从基础到多表关联与高级技巧全解析》本文主要讲解了在MySQL中的复合查询,下面是关于本文章所需要数据的建表语句,感兴趣的朋友跟随小编一起看看吧... 目录前言:1.基本查询回顾:1.1.查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J1.2.按照部门