PYQT学习笔记
文章平均质量分 69
PYQT的学习记录
AdolphW
这个作者很懒,什么都没留下…
展开
-
PYQT5(27)-图形和特效-不规则窗口的显示
QWidget类中比较重要的绘图函数setMask(self, QBitmap) setMask(self, QRegion) setMask()的作用是为调用它的控件增加一个遮罩,遮住所选区域以外的部分,使之看起来是透明的。它的参数可以为QBitmap或QRegion对象,此处调用QPiximap的mask()函数获得图片自身的遮罩,是一个QBitmap对象。在示例中使用的是PNG格式的图片,它的透明部分实际上就是一个遮罩 paintEvent(self, QPaintEvent)原创 2022-01-07 17:04:30 · 658 阅读 · 0 评论 -
PYQT5(26)-图形和特效-设置窗口背景
使用QSS设置窗口背景在QSS中,我们可以使用background或者background-color的方式来设置背景色。设置窗口背景色之后,子控件默认会继承父窗口的背景色。如果想要为控件设置背景图片或图标,则可以使用setPixmap或者setlcon来完成。代码示例import sysfrom PyQt5.QtWidgets import QMainWindow , QApplicationapp = QApplication(sys.argv)win = QMainWindow(原创 2021-12-20 20:30:57 · 2050 阅读 · 0 评论 -
PYQT5(25)-图形和特效-QSS的UI美化
QSS (Qt Style Sheets)即Qt样式表,是用来自定义控件外观的一种机制。QSS大量参考了CSS的内容,但QSS的功能比CSS要弱得多,体现为选择器少,可以使用的QSS属性也少,并且并不是所有的属性都可以应用在PyQt的控件上。QSS使页面美化跟代码层分开,利于维护。QSS的语法规则...原创 2021-12-08 17:25:53 · 989 阅读 · 0 评论 -
PYQT5(24)-图形和特效-绘图
图像类在PyQt中常用的图像类有4个,即QPixmap、QImage、QPicture和QBitmap。QPixmap是专门为绘图而设计的,在绘制图片时需要使用QPixmap。Qlmage提供了一个与硬件无关的图像表示函数,可以用于图片的像素级访问。QPicture是一个绘图设备类,它继承自QPainter类。可以使用QPainter的begin()函数在QPicture上绘图,使用end()函数结束绘图,使用QPicture的save()函数将QPainter所使用过的绘图指令保存到文件中。原创 2021-11-24 12:10:20 · 842 阅读 · 0 评论 -
PYQT5(23)-图形和特效-窗口风格
设置窗口风格代码示例import sysfrom PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5 import QtCorefrom PyQt5.QtGui import *class AppWidget(QWidget): def __init__(self, parent=None): super(AppWidget, self).__init__(parent) s原创 2021-11-24 10:50:54 · 897 阅读 · 0 评论 -
PYQT5(22)-信号与槽-窗口数据传递
单一窗口数据传递代码示例import sysfrom PyQt5.QtWidgets import QWidget, QLCDNumber, QSlider, QVBoxLayout, QApplicationfrom PyQt5.QtCore import Qtclass WinForm(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(s原创 2021-11-23 21:28:40 · 746 阅读 · 1 评论 -
PYQT5(19)-信号与槽-事件处理机制
信号与槽可以说是对事件处理机制的高级封装,如果说事件是用来创建窗口控件的,那么信号与槽就是用来对这个窗口控件进行使用的。比如一个按钮,当我们使用这个按钮时,只关心clicked信号,至于这个按钮如何接收并处理鼠标点击事件,然后再发射这个信号,则不用关心。但是如果要重载一个按钮,这时就要关心这个问题了。比如可以改变它的行为:在鼠标按键按下时触发clicked信号,而不是在释放时。常见事件类型●键盘事件:按键按下和松开。●鼠标事件:鼠标指针移动、鼠标按键按下和松开。●拖放事件:用鼠标进行拖放。●滚原创 2021-11-23 19:41:31 · 483 阅读 · 0 评论 -
PYQT5(20)-信号与槽-初级高级
信号(Signal)和槽(Slot)是Qt中的核心机制,也是在PyQt编程中对象之间进行通信的机制。在Qt中,每一个QObject对象和PyQt中所有继承自QWidget的控件(这些都是QObject的子对象)都支持信号与槽机制。当信号发射时,连接的槽函数将会自动执行。在PyQt5中信号与槽通过object.signal.connct()方法连接。PyQt的窗口控件类中有很多内置信号,开发者也可以添加自定义信号。信号与槽具有如下特点:一个信号可以连接多个槽。一个信号可以连接另一个信号。信号参数可以原创 2021-11-23 17:49:20 · 1057 阅读 · 0 评论 -
PYQT5(21)-信号与槽-布局管理
2种布局方法:addLayout() 插入子布局, addWidget() 插入控件4种布局方式对应4个布局类:水平布局类(QHBoxLayout),可以把所添加的控件在水平方向上依次排列。垂直布局类(QVBoxLayout),可以把所添加的控件在垂直方向上依次排列。网格布局类(QGridLayout),可以把所添加的控件以网格的形式排列。表单布局类(QFormLayout),可以把所添加的控件以两列的形式排列。绝对位置布局代码示例import sys from PyQt5..原创 2021-11-22 12:10:13 · 621 阅读 · 0 评论 -
PYQT5(19)-高级界面控件-多线程
一般情况下,应用程序都是单线程运行的,但是对于GUI程序来说,单线程有时候满足不了需求。比如,如果需要执行一个特别耗时的操作,在执行过程中整个程序就会卡顿,这时候用户可能以为程序出错,就把程序关闭了;或者Windows系统也认为程序运行出错,自动关闭了程序。要解决这种问题就涉及多线程的知识。一般来说,多线程技术涉及三种方法,其中一种是使用计时器模块QTimer;一种是使用多线程模块QThread;还有一种是使用事件处理的功能。原创 2021-11-19 13:30:38 · 1607 阅读 · 0 评论 -
PYQT5(18)-高级界面控件-容器
装载更多的控件QTabWidgetQTabWidget控件提供了一个选项卡和一个页面区域,默认显示第一个选项卡的页面。通过单击各选项卡可以查看对应的页面。如果在一个窗口中显示的输入字段很多,则可以对这些字段进行拆分,分别放置在不同页面的选项卡中。常用方法addTab() 将一个控件添加到Tab控件的选项卡中 insertTab() 将一个Tab控件的选项卡插入到指定的位置 removeTab() 根据指定的索引删除Tab控件 setCurrentIndex()原创 2021-11-10 19:34:50 · 1064 阅读 · 0 评论 -
PYQT5(17)-高级界面控件-表格与树
表格与树解决的问题是如何在一个控件中有规律地呈现更多的数据。PyQt提供了两种控件类用于解决该问题,其中一种是表格结构的控件类;另一种是树形结构的控件类。QTableView以表格形式输出信息,可以使用自定义的数据模型来显示内容,通过setModel来绑定数据源。继承结构如下QTableWidget继承自QTableView,主要区别是QTableView可以使用自定义的数据模型来显示内容(先要通过setModel来绑定数据源), 而QTableWidget 只能使用标准的数据模型,并且原创 2021-11-10 15:49:48 · 1434 阅读 · 0 评论 -
PYQT5(16)-基本窗口控件-QPrinter
打印图像是图像处理软件中的一个常用功能。打印图像实际上是在QPaintDevice中画图,与平常在QWidget、QPixmap和QImage中画图一样,都是创建一个QPainter对象进行画图的,只是打印使用的是QPrinter,它本质上也是一个QPaintDevice(绘图设备)。代码示例from PyQt5.QtCore import Qtfrom PyQt5.QtGui import QImage, QIcon, QPixmapfrom PyQt5.QtWidgets import Q原创 2021-11-09 17:50:42 · 280 阅读 · 0 评论 -
PYQT5(15)-基本窗口控件-菜单栏、工具栏和状态栏
菜单栏menuBar主要方法menuBar() 返回主窗口的QMenuBar对象 addMenu() 在菜单栏中添加一个新的QMenu对象 addAction() 向QMenu小控件中添加一个操作按钮,其中包含文本或图标 setEnabled() 将操作按钮状态设置为启用/禁用 addSeperator() 在菜单中添加一条分隔线 clear() 删除菜单/菜单栏的内容 setShortcut() 将快捷键关联到操作按钮 setT原创 2021-11-09 17:43:10 · 379 阅读 · 0 评论 -
PYQT5(14)-基本窗口控件-日历与时间
QCalendar日历控件原创 2021-11-09 16:02:33 · 1201 阅读 · 0 评论 -
PYQT5(13)-基本窗口控件-拖曳与剪贴板
Drag与Drop为用户提供的拖曳功能很直观,在很多桌面应用程序中,复制或移动对象都可以通过拖曳来完成。基于MIME类型(Multipurpose Internet Mail Extension, 多用途互联网邮件扩展类型)的拖曳数据传输是基于QDrag类的。QMimeData对象将关联的数据与其对应的MIME类型相关联。MIME类型的数据可以简单理解为互联网上的各种资源,比如文本、音频和视频资源等,互联网上的每一种资源都属于一种MIME类型的数据。MimeData类函数允许检测和使用方便的原创 2021-11-08 22:25:13 · 357 阅读 · 0 评论 -
PYQT5(12)-基本窗口控件-窗口绘图类空间
一般通过QPainter、QPen和QBrush这三个类来实现绘图功能。QPixmap的作用是加载并呈现本地图像,其图像的呈现本质上也是通过绘图方式实现的。QPainterQPainter类在QWidget(控件)上执行绘图操作,为大部分图形界面提供了高度优化的函数,可以绘制从简单的直线到复杂的饼图等。绘制操作在QWidget.paintEvent()中完成。绘制方法必须放在QtGui.QPainter对象的begin()和end()之间。QPainter类在控件或其他绘图设备上执行较低级别的原创 2021-11-07 19:31:23 · 278 阅读 · 0 评论 -
PYQT5(11)-基本窗口控件-对话框类空间
QDialog子类:QMessageBox、QColorDialog、QFileDialog、QFontDialog、QInputDialog常用方法setWindowTitle() 设置对话框标题 setWindowModality() 设置窗口模态。取值如下: Qt.NonModal,非模态,可以和程序的其他窗口交互 Qt.WindowModal,窗口模态,程序在未处理完当前对话框时,将阻止和对话框 的父窗口进行交互 Qt.Applicati原创 2021-11-06 21:00:52 · 199 阅读 · 0 评论 -
PYQT5(10)-基本窗口控件-滑动条QSlider
QSlider控件提供了一个垂直或水平的滑动条,它允许用户沿水平或垂直方向在某一范围内移动滑块,并将滑块所在的位置转换成一个合法范围内的整数值。self.sp = QSlider(Qt.Horizontal)self.sp = QSlider(Qt.Vertical)常用方法setMinimum() 设置滑动条控件的最小值 setMaximum() 设置滑动条控件的最大值 setSingleStep() 设置滑动条控件递增/递减的步长值 setValue()原创 2021-11-06 14:28:03 · 582 阅读 · 0 评论 -
PYQT5(09)-基本窗口控件-计数器QSpinBox
QSpinBox 默认范围0-99 单步长度1QDoubleSpinBox 默认精度2位小数 setDecimals()改精度常用方法setMinimum() 设置计数器的下界 setMaximum() 设置计数器的上界 setRange() 设置计数器的最大值、最小值和步长值 setValue() 设置计数器的当前值 Value() 返回计数器的当前值 singleStep() 设置计数器的步长值 代码示例import s...原创 2021-11-05 22:06:47 · 215 阅读 · 0 评论 -
PYQT5(08)-基本窗口控件-下拉列表框QComboBox
QComboBox常用方法addItem() 添加一个下拉选项 addItems() 从列表中添加下拉选项 Clear() 删除下拉选项集合中的所有选项 count() 返回下拉选项集合中的数目 currentText() 返回选中选项的文本 itemText(i) 获取索引为i的item的选项文本 currentIndex() 返回选中项的索引 setltemText(int index,text) 改变序号为index.原创 2021-11-05 18:43:26 · 337 阅读 · 0 评论 -
PYQT5(07)-基本窗口控件-按钮类控件
QAbstractButton所有按钮类的父类,为抽象类提供如下状态isDown() 提示按钮是否被按下 isChecked() 提示按钮是否已经标记 isEnable() 提示按钮是否可以被用户点击 isCheckAble() 提示按钮是否为可标记的 setAutoRepeat() 设置按钮是否在用户长按时可以自动重复执行 提供如下信号Pressed 当鼠标指针在按钮上并按下左键时触发该信号 Rcleased 当鼠标左键被释原创 2021-11-05 16:36:20 · 1925 阅读 · 0 评论 -
PYQT5(06)-基本窗口控件-文本框类控件
QLineEdit单行文本框控件setAlignment() 按固定值方式对齐文本: QtAlignLeft,水平方向靠左对齐 Qt.AlignRight,水平方向靠右对齐 Qt.AlignCenter,水平方向居中对齐 QL.AlignJustify,水平方向调整间距两端对齐 Qt.AlignTop,垂直方向靠上对齐 Qt.AlignBottom,乘直方向靠下对齐 QtAlignVCenter,垂直方向居中对齐 clear()原创 2021-11-05 09:05:32 · 1766 阅读 · 0 评论 -
PYQT5(05)-基本窗口控件-QLabel
显示不可编辑的文字或图片,也可以放置一个Gif,还可以被用作提示标记。可显示纯文本、链接或富文本。显示QLabel标签代码示例from PyQt5.QtWidgets import QApplication, QLabel ,QWidget, QVBoxLayout from PyQt5.QtCore import Qt from PyQt5.QtGui import QPixmap ,QPaletteimport sys class WindowDemo(QWi.原创 2021-10-26 19:43:04 · 254 阅读 · 0 评论 -
PYQT5(04)-基本窗口控件-QWidget
所有用户界面对象的基类窗口坐标系统图片来自Qt官方文档常用几何结构QWidget不包含边框的常用函数改变客户区的面积QWidget.resize(width, height) QWidget.resize(QSize) 获得客户区的大小,宽高QWidget.size()QWidget.width()QWidget.height()设置客户区的宽高QWidget.setFixedWidth(int width) # 固定宽度QWidget.setF.原创 2021-10-26 17:50:49 · 792 阅读 · 0 评论 -
PYQT5(03)-基本窗口控件-QMainWindow
QMainWindow窗口类型QMainWindow 主窗口(菜单栏,标题栏,工具栏,状态栏)QWidget 任意时候都可用QDialog 对话窗口的基类创建主窗口代码示例# -*- coding: utf-8 -*- import sysfrom PyQt5.QtWidgets import QMainWindow , QApplicationfrom PyQt5.QtGui import QIcon class MainWidget(QMainWind...原创 2021-10-26 16:11:20 · 442 阅读 · 0 评论 -
PYQT5(01)-在PyCharm中导入QtDesigner、pyuic5、pyrcc5
首先打开PyCharm的文件--->设置从设置中找到外部工具--->点击加号添加工具添加QtDesigner(本文路径为Anaconda环境下的Qt及Qt-tools路径)名称:QtDesigner程序:D:\Anaconda\Lib\site-packages\qt5_applications\Qt\bin\designer.exe工作目录:$FileDir$点击确定并点击应用添加PyUIC(用于将UI文件转换为py文件)名称:PyUIC..原创 2021-10-21 18:43:31 · 673 阅读 · 0 评论 -
PYQT5(02)-QtDesigner使用
新建窗体主要分为以下几种Main Window 主菜单窗口(包括菜单栏工具栏等) Dialog without Buttons Dialog with Buttons Right Dialog with Buttons Bottom Widget原创 2021-10-21 18:59:04 · 547 阅读 · 0 评论