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

相关文章

C#实现WinForm控件焦点的获取与失去

《C#实现WinForm控件焦点的获取与失去》在一个数据输入表单中,当用户从一个文本框切换到另一个文本框时,需要准确地判断焦点的转移,以便进行数据验证、提示信息显示等操作,本文将探讨Winform控件... 目录前言获取焦点改变TabIndex属性值调用Focus方法失去焦点总结最后前言在一个数据输入表单

使用PyQt5编写一个简单的取色器

《使用PyQt5编写一个简单的取色器》:本文主要介绍PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16进制颜色编码,一款跟随鼠标刷新图像的RGB和16... 目录取色器1取色器2PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显

C 语言基础之数组

文章目录 什么是数组数组变量的声明多维数组 什么是数组 数组,顾名思义,就是一组数。 假如班上有 30 个同学,让你编程统计每个人的分数,求最高分、最低分、平均分等。如果不知道数组,你只能这样写代码: int ZhangSan_score = 95;int LiSi_score = 90;......int LiuDong_score = 100;int Zhou

c++基础版

c++基础版 Windows环境搭建第一个C++程序c++程序运行原理注释常亮字面常亮符号常亮 变量数据类型整型实型常量类型确定char类型字符串布尔类型 控制台输入随机数产生枚举定义数组数组便利 指针基础野指针空指针指针运算动态内存分配 结构体结构体默认值结构体数组结构体指针结构体指针数组函数无返回值函数和void类型地址传递函数传递数组 引用函数引用传参返回指针的正确写法函数返回数组

【QT】基础入门学习

文章目录 浅析Qt应用程序的主函数使用qDebug()函数常用快捷键Qt 编码风格信号槽连接模型实现方案 信号和槽的工作机制Qt对象树机制 浅析Qt应用程序的主函数 #include "mywindow.h"#include <QApplication>// 程序的入口int main(int argc, char *argv[]){// argc是命令行参数个数,argv是