添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

四、PYQT5的高级控件

1、进度条类控件

T、ProgressBar:进度条

ProgressBar控件表示进度条,通常在执行长时间任务时,用进度条告诉用户当前的进展情况。

ProgressBar控件对应PyQt5中的QProgressBar类,它其实就是QProgressBar类的一个对象。QProgressBar类的常用方法及说明。

ProgressBar控件最常用的信号是valueChanged,在进度条的值发生改变时发射。 通过对ProgressBar控件的显示方向、对齐方式、布局方向等进行设置,该控件可以支持4种水平进度条显示方式和2种垂直进度条显示方式。

如果将最小值和最大值都设置为0,那么进度条会显示为一个不断循环滚动的繁忙进度,而不是步骤的百分比。

U、自定义等待提示框

在使用PyQt5创建桌面窗口应用程序时,有时会遇到等待长任务执行的情况,PyQt5提供的ProgressBar控件(即QProgressBar对象)虽然也可以通过循环滚动的方式等待任务执行完成,但与我们通常见到的如图12.5所示的等待提示框相比,美观程度上有所欠缺。

V、滑块:QSlider

PyQt5提供了两个滑块控件,分别是水平滑块HorizontalSlider和垂直滑块VerticalSlider,但这两个滑块控件对应的类都是QSlider类,该类提供了一个setOrientation()方法,通过设置该方法的参数,可以将滑块显示为水平或者垂直。

QSlider滑块类的常用信号及说明

QSlider滑块只能控制整数范围,因此,它不适合于需要准确的大范围取值的场景。

2、树控件

树控件可以为用户显示节点层次结构,而每个节点又可以包含子节点,包含子节点的节点叫父节点,在设计树形结构(如导航菜单等)时,非常方便。PyQt5提供了两个树控件,分别为TreeView和TreeWidget。

W、TreeView:树视图

QTreeView类的常用方法及说明

下面分别介绍如何使用TreeView控件分层显示PyQt5内置模型的数据和自定义的数据。

1.使用内置模型中的数据

image-20221223084804781

2.使用自定义数据

PyQt5提供了一个QStandardItemModel模型,该模型可以存储任意层次结构的数据,本节将介绍如何使用QStandardItemModel模型存储数据,并显示在TreeView控件中。

运行效果如下:

X、TreeWidget:树控件

TreeWidget控件对应PyQt5中的QTreeWidget类,它提供了一个使用预定义树模型的树视图,它的每一个树节点都是一个QTreeWidgetItem。

由于QTreeWidget类继承自QTreeView,因此,它具有QTreeView的所有公共方法,另外,它还提供了一些自身特有的方法,如表所示。

QTreeWidgetItem类表示QTreeWidget中的树节点项,该类的常用方法如表所示。

1、使用TreeWidget控件显示树结构

使用TreeWidget控件显示树结构主要用到QTreeWidgetItem类,该类表示标准树节点,通过其setText()方法可以设置树节点的文本。

2.为节点设置图标

为节点设置图标主要用到了QTreeWidgetItem类的setIcon()方法。

3.为节点设置复选框

为节点设置复选框主要用到了QTreeWidgetItem类的setCheckState()方法,该方法可以设置选中(Qt.Checked),也可以设置未选中(Qt.Unchecked)。

child.setCheckState(0,QtCore.Qt.Checked) # 为节点设置复选框,并且选中
4、设置隔行变色显示树节点

隔行变色显示树节点需要用到TreeWidget控件的setAlternatingRowColors()方法,设置为True表示隔行换色,设置为False表示统一颜色。

self.treeWidget.setAlternatingRowColors(True) # 设置隔行变色
5、获取选中节点的文本

获取选中节点的文本时,首先需要使用currentItem()方法获取当前的选中项,然后通过text()方法获取指定列的文本。

self.treeWidget=QTreeWidget()
item=self.treeWidget.currentItem()     #获取当前选中项
QtWidgets.QMessageBox.Information(self,"提示","你选择的是:%s--%s"%(item,text(0),item.text(1)),QtWidgets.QMessageBox.Ok)

为树控件的clicked信号绑定自定义的槽函数,以便在单击树控件时发射。

self.treeWidget.clicked.connect(self.gettreetext)    # 为树控件绑定单击信号

3、分割控件

Y、分割线:QFrame

PyQt5提供了两个分割线控件,分别是水平分割线HorizontalLine和垂直分割线VerticalLine,但这两个分割线控件对应的类都是QFrame类,该类提供了一个setFrameShape()方法,通过设置该方法的参数,可以将分割线显示为水平或者垂直。

Z、弹簧:QSpacerItem

PyQt5提供了两个弹簧控件,分别是HorizontalSpacer和VerticalSpacer,但这两个控件对应的类都是QSpacerItem类,水平和垂直主要通过宽度和高度(水平弹簧的默认宽度和高度分别是40、20,而垂直弹簧的默认宽度和高度分别是20、40)进行区分。

弹簧控件只在设计窗口时显示,在实际运行时不显示。

4、其他控件

AA、Dial:旋钮控件

Dial控件,又称为旋钮控件,它本质上类似于一个滑块控件,只是显示的样式不同。

AB、滚动条:QScrollBar

PyQt5提供了两个滚动条控件,分别是水平滚动条HorizontalScrollBar和垂直滚动条VerticalScrollBar,但这两个滚动条控件对应的类都是QScrollBar类,这两个控件通过水平的或垂直的滚动条,可以扩大当前窗口的有效装载面积,从而装载更多的控件。

滚动条控件通常与其他控件配合使用,如ScrollArea、TableWidget表格等,另外,也可以使用滚动条控件实现与滑块控件同样的功能,实际上,滚动条控件也是一种特殊的滑块控件。

PyQt5 QTableWidget列宽设置方法

十、PyQt5 QTableWidget列宽设置方法 #pyqt5 表格怎么点击的时候选择一整行呢 from PyQt5.QtWidgets import QAbstractItemView

Pyqt5学习笔记六、PYQT5数据库使用

六、PYQT5 Mysql 数据库使用1、安装PyMySQL模块pip install PyMySQL2、数据库使用流程import pymysql #1、链接数据库 db=pymysql.con...

Pyqt5学习笔记四、PYQT5的控件(二)

四、PYQT5的高级控件1、进度条类控件T、ProgressBar:进度条ProgressBar控件表示进度条,通常在执行长时间任务时,用进度条告诉用户当前的进展情况。 ProgressBar控件对...