- 博客(35)
- 收藏
- 关注
原创 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
622
原创 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
2006
原创 PYQT5(25)-图形和特效-QSS的UI美化
QSS (Qt Style Sheets)即Qt样式表,是用来自定义控件外观的一种机制。QSS大量参考了CSS的内容,但QSS的功能比CSS要弱得多,体现为选择器少,可以使用的QSS属性也少,并且并不是所有的属性都可以应用在PyQt的控件上。QSS使页面美化跟代码层分开,利于维护。QSS的语法规则...
2021-12-08 17:25:53
949
原创 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
805
原创 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
864
原创 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
719
1
原创 PYQT5(19)-信号与槽-事件处理机制
信号与槽可以说是对事件处理机制的高级封装,如果说事件是用来创建窗口控件的,那么信号与槽就是用来对这个窗口控件进行使用的。比如一个按钮,当我们使用这个按钮时,只关心clicked信号,至于这个按钮如何接收并处理鼠标点击事件,然后再发射这个信号,则不用关心。但是如果要重载一个按钮,这时就要关心这个问题了。比如可以改变它的行为:在鼠标按键按下时触发clicked信号,而不是在释放时。常见事件类型●键盘事件:按键按下和松开。●鼠标事件:鼠标指针移动、鼠标按键按下和松开。●拖放事件:用鼠标进行拖放。●滚
2021-11-23 19:41:31
444
原创 PYQT5(20)-信号与槽-初级高级
信号(Signal)和槽(Slot)是Qt中的核心机制,也是在PyQt编程中对象之间进行通信的机制。在Qt中,每一个QObject对象和PyQt中所有继承自QWidget的控件(这些都是QObject的子对象)都支持信号与槽机制。当信号发射时,连接的槽函数将会自动执行。在PyQt5中信号与槽通过object.signal.connct()方法连接。PyQt的窗口控件类中有很多内置信号,开发者也可以添加自定义信号。信号与槽具有如下特点:一个信号可以连接多个槽。一个信号可以连接另一个信号。信号参数可以
2021-11-23 17:49:20
998
原创 PYQT5(21)-信号与槽-布局管理
2种布局方法:addLayout() 插入子布局, addWidget() 插入控件4种布局方式对应4个布局类:水平布局类(QHBoxLayout),可以把所添加的控件在水平方向上依次排列。垂直布局类(QVBoxLayout),可以把所添加的控件在垂直方向上依次排列。网格布局类(QGridLayout),可以把所添加的控件以网格的形式排列。表单布局类(QFormLayout),可以把所添加的控件以两列的形式排列。绝对位置布局代码示例import sys from PyQt5..
2021-11-22 12:10:13
596
原创 PYQT5(19)-高级界面控件-多线程
一般情况下,应用程序都是单线程运行的,但是对于GUI程序来说,单线程有时候满足不了需求。比如,如果需要执行一个特别耗时的操作,在执行过程中整个程序就会卡顿,这时候用户可能以为程序出错,就把程序关闭了;或者Windows系统也认为程序运行出错,自动关闭了程序。要解决这种问题就涉及多线程的知识。一般来说,多线程技术涉及三种方法,其中一种是使用计时器模块QTimer;一种是使用多线程模块QThread;还有一种是使用事件处理的功能。
2021-11-19 13:30:38
1560
原创 PYQT5(18)-高级界面控件-容器
装载更多的控件QTabWidgetQTabWidget控件提供了一个选项卡和一个页面区域,默认显示第一个选项卡的页面。通过单击各选项卡可以查看对应的页面。如果在一个窗口中显示的输入字段很多,则可以对这些字段进行拆分,分别放置在不同页面的选项卡中。常用方法addTab() 将一个控件添加到Tab控件的选项卡中 insertTab() 将一个Tab控件的选项卡插入到指定的位置 removeTab() 根据指定的索引删除Tab控件 setCurrentIndex()
2021-11-10 19:34:50
1028
原创 PYQT5(17)-高级界面控件-表格与树
表格与树解决的问题是如何在一个控件中有规律地呈现更多的数据。PyQt提供了两种控件类用于解决该问题,其中一种是表格结构的控件类;另一种是树形结构的控件类。QTableView以表格形式输出信息,可以使用自定义的数据模型来显示内容,通过setModel来绑定数据源。继承结构如下QTableWidget继承自QTableView,主要区别是QTableView可以使用自定义的数据模型来显示内容(先要通过setModel来绑定数据源), 而QTableWidget 只能使用标准的数据模型,并且
2021-11-10 15:49:48
1371
原创 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
259
原创 PYQT5(15)-基本窗口控件-菜单栏、工具栏和状态栏
菜单栏menuBar主要方法menuBar() 返回主窗口的QMenuBar对象 addMenu() 在菜单栏中添加一个新的QMenu对象 addAction() 向QMenu小控件中添加一个操作按钮,其中包含文本或图标 setEnabled() 将操作按钮状态设置为启用/禁用 addSeperator() 在菜单中添加一条分隔线 clear() 删除菜单/菜单栏的内容 setShortcut() 将快捷键关联到操作按钮 setT
2021-11-09 17:43:10
355
原创 PYQT5(13)-基本窗口控件-拖曳与剪贴板
Drag与Drop为用户提供的拖曳功能很直观,在很多桌面应用程序中,复制或移动对象都可以通过拖曳来完成。基于MIME类型(Multipurpose Internet Mail Extension, 多用途互联网邮件扩展类型)的拖曳数据传输是基于QDrag类的。QMimeData对象将关联的数据与其对应的MIME类型相关联。MIME类型的数据可以简单理解为互联网上的各种资源,比如文本、音频和视频资源等,互联网上的每一种资源都属于一种MIME类型的数据。MimeData类函数允许检测和使用方便的
2021-11-08 22:25:13
331
原创 PYQT5(12)-基本窗口控件-窗口绘图类空间
一般通过QPainter、QPen和QBrush这三个类来实现绘图功能。QPixmap的作用是加载并呈现本地图像,其图像的呈现本质上也是通过绘图方式实现的。QPainterQPainter类在QWidget(控件)上执行绘图操作,为大部分图形界面提供了高度优化的函数,可以绘制从简单的直线到复杂的饼图等。绘制操作在QWidget.paintEvent()中完成。绘制方法必须放在QtGui.QPainter对象的begin()和end()之间。QPainter类在控件或其他绘图设备上执行较低级别的
2021-11-07 19:31:23
263
原创 PYQT5(11)-基本窗口控件-对话框类空间
QDialog子类:QMessageBox、QColorDialog、QFileDialog、QFontDialog、QInputDialog常用方法setWindowTitle() 设置对话框标题 setWindowModality() 设置窗口模态。取值如下: Qt.NonModal,非模态,可以和程序的其他窗口交互 Qt.WindowModal,窗口模态,程序在未处理完当前对话框时,将阻止和对话框 的父窗口进行交互 Qt.Applicati
2021-11-06 21:00:52
176
原创 PYQT5(10)-基本窗口控件-滑动条QSlider
QSlider控件提供了一个垂直或水平的滑动条,它允许用户沿水平或垂直方向在某一范围内移动滑块,并将滑块所在的位置转换成一个合法范围内的整数值。self.sp = QSlider(Qt.Horizontal)self.sp = QSlider(Qt.Vertical)常用方法setMinimum() 设置滑动条控件的最小值 setMaximum() 设置滑动条控件的最大值 setSingleStep() 设置滑动条控件递增/递减的步长值 setValue()
2021-11-06 14:28:03
554
原创 PYQT5(09)-基本窗口控件-计数器QSpinBox
QSpinBox 默认范围0-99 单步长度1QDoubleSpinBox 默认精度2位小数 setDecimals()改精度常用方法setMinimum() 设置计数器的下界 setMaximum() 设置计数器的上界 setRange() 设置计数器的最大值、最小值和步长值 setValue() 设置计数器的当前值 Value() 返回计数器的当前值 singleStep() 设置计数器的步长值 代码示例import s...
2021-11-05 22:06:47
197
原创 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
329
原创 PYQT5(07)-基本窗口控件-按钮类控件
QAbstractButton所有按钮类的父类,为抽象类提供如下状态isDown() 提示按钮是否被按下 isChecked() 提示按钮是否已经标记 isEnable() 提示按钮是否可以被用户点击 isCheckAble() 提示按钮是否为可标记的 setAutoRepeat() 设置按钮是否在用户长按时可以自动重复执行 提供如下信号Pressed 当鼠标指针在按钮上并按下左键时触发该信号 Rcleased 当鼠标左键被释
2021-11-05 16:36:20
1759
原创 PYQT5(06)-基本窗口控件-文本框类控件
QLineEdit单行文本框控件setAlignment() 按固定值方式对齐文本: QtAlignLeft,水平方向靠左对齐 Qt.AlignRight,水平方向靠右对齐 Qt.AlignCenter,水平方向居中对齐 QL.AlignJustify,水平方向调整间距两端对齐 Qt.AlignTop,垂直方向靠上对齐 Qt.AlignBottom,乘直方向靠下对齐 QtAlignVCenter,垂直方向居中对齐 clear()
2021-11-05 09:05:32
1735
原创 C#笔记-07
枚举(值类型)using System;namespace day7{ [Flags]enum PersonStyle { tall = 1, rich = 2, handsome = 4, man = 8, woman = 16 } class Program { static void Main(string[] args) {
2021-11-01 16:53:50
79
原创 C#笔记-06
交错数组每个元素都为一维数组using System;namespace day6{ class Program { static void Main(string[] args) { // 交错数组 参数数组 数据类型 int[][] array01; // 创建具有4个元素的交错数组 array01 = new int[4][];
2021-10-29 22:53:20
127
原创 C#笔记-05
冒泡排序与选择排序namespace day5{ class Program { static void Main(string[] args) { int[] nums = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; int[] nums1 = BubbleSort(nums,1); int[] nums2 = SelectSort(nums,1);
2021-10-29 13:48:53
64
原创 C#笔记-04
方法重载天数小时分钟换算秒使用重载代码namespace day4{ class Program { // 方法的重载 static void Main(string[] args) { int second1 = GetTotalSecond(5, 5, 5); Console.WriteLine(second1); Console.ReadLine();
2021-10-28 17:43:29
151
原创 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
230
原创 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
769
原创 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
403
原创 C#笔记-03
using System;namespace Day3{ class Program { static void Main(string[] args) { // 短路逻辑 提高效率 int n1 = 1, n2 = 2; // false && ? bool re1 = n1 > n2 && n1++ > 1;.
2021-10-25 14:53:21
130
原创 C#笔记-02
占位符using System;namespace Day2{ class Program { static void Main(string[] args) { string name1 = "001"; string name2 = "002"; // 占位符 string str = string.Format("name1:{0},name2:{
2021-10-24 20:59:26
109
原创 C#笔记-01
Hello World//********************引入命名空间**********************using System;//********************定义命名空间**********************namespace HelloRider{ //****************定义类************************** class Program { //************定义方法*
2021-10-24 16:21:50
2085
原创 PYQT5(02)-QtDesigner使用
新建窗体主要分为以下几种Main Window 主菜单窗口(包括菜单栏工具栏等) Dialog without Buttons Dialog with Buttons Right Dialog with Buttons Bottom Widget
2021-10-21 18:59:04
517
原创 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
639
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人