微软OneNote客户预览版学习工具下载(暂未上线):教学好帮手
1805
2022-05-29
配置相关
designer.exe
拖拉控件实现UI界面的工具,设计完成保存后是.ui文件
Program参数:D:\Python\Python38-32\Scripts\designer.exe
Working directory参数:$FileDir$
pyuic5
将界面.ui 文件转换成.py文件
Program参数:D:\Python\Python38-32\Scripts\pyuic5.exe
Argument参数:$FileName$ -o $FileNameWithoutExtension$.py
Working directory参数:$FileDir$
pyrcc5
将资源(图片).qrc 文件转换成.py文件
Program参数:D:\Python\Python38-32\Scripts\pyrcc5.exe
Argument参数:$FileName$ -o $FileNameWithoutExtension$.py
Working directory参数:$FileDir$
from…import * 语句与 import 区别
import 模块:导入一个模块;注:相当于导入的是一个文件夹,是个相对路径;使用:模块.函数
from…import:导入了一个模块中的一个函数;注:相当于导入的是一个文件夹中的文件,是个绝对路径;使用:函数
from a import A:导入a.py模块中的A函数
.app.exec_()
程序一直循环运行直到主窗口被关闭终止进程
作用是运行主循环,必须调用此函数才能开始事件处理,调用该方法进入程序的主循环直到调用exit()结束
主事件循环从窗口系统接收事件,并将其分派给应用程序小部件
如果没有该方法,那么在运行的时候还没有进入程序的主循环就直接结束了,所以运行的时候窗口会闪退
在退出时会返回状态代码
不用sys.exit(app.exec_()),只使用app.exec_(),程序也可以正常运行,但是关闭窗口后进程却不会退出。
pyqt5借助QtDesigner设计图形界面的思路
利用QtDesignert软件设计界面,并保存,然后通过pyuic5程序将ui文件转换为py文件,最后编写一个main.py文件,运行py文件并显示。
QT
至少要安装Py-Qt5和pyqt5-tools
QTDesigner
预览快捷键 ctrl+r
初次启动会弹出这个“New Form”窗口,一般来说选择“Main Window”然后点击“Create”就可以了。
Qt Designer已经在Python3.5版本从PyQt5转移到了tools,因此我们还需要安装pyqt5-tools
子线程不能调用主线程的QtGui类
QStringListModel介绍
我们这里使用了一个QListView来和 QStringListModel进行连接,这样 QStringListModel的内容就会在QListView中显示出来,任何对 QStringListModel的修改都会显示在QListView中。这样我们就可以达到数据存储和显示的分离,我们可以专注我们的数据部分( QStringListModel,只要我们定义好接口),显示的部分就由QListView去负责,这就是QT的MVC(Model-View-Controller)机制,在MFC里也就是document和view。
界面修改
在主线程之外的线程更改界面
获取一个类实例的方法
在这个类中定义静态方法,返回其实例
直接在要使用的类中传入类的实例
python中的类
对象是类的实例
加了self的变量或者方法,只有实例才能调用
调用类的方法:C.fun()
调用类的实例的方法:c().fun()
一般类大小,实例小写(首字母)。比如类叫DataParse,那么实例一般叫dataParse。
普通继承方式和super继承方式单次继承的话没什么大区别。【多次继承super优势比较明显】
类中的下划线
单下划线、双下划线、头尾双下划线说明:foo: 定义的是特殊方法,一般是系统定义名字 ,类似 init() 之类的。
_foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *
__foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。
HTTP
403 - Forbidden
404 - Not Found
500 - Internal Server Error
502 - Bad Gateway
503 - Service Unavailable
exec_和show区别
若使用exec_()的话,那么显示出来的注册界面就是模态的,意思就是当前只能对该注册界面进行操作,只有关闭了该界面才能对其他界面进行操作;若使用show()的话,那注册界面就是非模态的,则在显示了注册界面后,还能同时对登录界面进行操作(QDialog有exec_()方法,而QWidget没有)。
槽函数如果带参数
槽函数带参数,需要用lambda表达式进行处理
eg:self.ui.checkBoxRadarLeftFront.stateChanged.connect(lambda: self.playRadarPos(self.ui.checkBoxRadarLeftFront))
pyqt5
. setWindowTitle()方法可以设置窗口标题
setAlignment(Qt.AlignCenter)可以让QLabel控件在窗口中居中显示【更方便】
居中对齐还有:self.h_layout.addStretch(1)
事件处理
常用的包括窗口关闭事件处理、鼠标事件处理以及键盘事件处理
记得最后加上 accept 或者 ignore
ignoret()其实功能上就相当于pass
关于休眠
中断不能休眠
线程可以休眠
关于None和False的一点对比
None、空列表[]、空字典{}、空元组()、0等一系列代表空和无的对象会被转换成False
但是None和[]不是一回事!!!
frames = [] if not frames: print("000") else: print("111") if frames == None: print("222") else: print("333")
1
2
3
4
5
6
7
8
9
10
11
12
问题记录
pyqtSignal的参数应该是list
并行视频显示,提示'NoneType' object has no attribute 'width'解决办法
incr抛出几个信号量由下面的线程决定
图片资源
播放卡,注意是多少时间放一次
控件不能拉伸?
布局的缘故?
pycharm 报错Try to run this command from the system terminal. Make sure that you use the correct version of 'pip' installed for your Python interpreter located at 'D:\Python\Python38-32\python.exe'.(参考1 或者 参考2)
打开cmd命令行,或者PowerShell终端
进入python.exe所在文件夹(如果设置了PATH,可以在任意目录下操作)
设置源:pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
更新pip:python -m pip install --upgrade pip
下载某个包:pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple
或者python.exe -m pip install xxx -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
AttributeError: module ‘serial’ has no attribute 'Serial’解决办法
类实例作为“某个函数”的形式参数
在这个“某个函数”改变类实例的成员,实际参数也是会改变的!
class ServerFileNode: def __init__(self): self.radar = 1 class yFunction: def __init__(self, serverFileNode): self.serverFileNode = serverFileNode self.serverFileNode.radar = self.serverFileNode.radar + 1 serverFileNode = ServerFileNode() yFunction(serverFileNode) print(serverFileNode.radar)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
pyqt5-对文本样式进行操作
参考
环境配置,快速上手HelloWorld
pycharm+PyQt5+python最新开发环境配置,踩坑过程详解
用Python写个上位机学习系列之第一个界面的设计 - pyqt5、pycharm、QtDesigner
pycharm配置
PyCharm安装配置Qt Designer+PyUIC教程
PyQt5 图形界面-用Qt Designer来设计UI界面,并转化为python代码运行 (详细)
用Python写个上位机学习系列之第一个界面的设计 - 参考这里面的main.py程序
PyQt5(designer)入门教程
PyQt5(designer)入门教程2020
PyQt5教程
PyCharm+QTDesigner+PyUIC使用教程 - 非mainwindow的按钮点击
程序中的一些函数记录
python3 基础
言简意赅python系列—if not x: 和 if x is not None: 和 if not x is None: 的区别
Python3 基本数据类型
python集合增加数据的操作方法
Python 内置函数
Python3 print 函数用法总结
Python set() 函数
Python time sleep()方法
json.dumps()和json.loads()
Python3 find()方法
Python find()方法
Python lambda介绍
Python format 格式化函数
给大家带来一篇python with as的用法
python使用with as 读写文件
get函数和get_nowait函数
python的for in if 列表推导式用法
pyhton (for in if)用法
Python中关于列表推导式(与循环和条件判断结合时)常会出现的问题
python中self
python中的面向对象
Python进阶-----静态方法(@staticmethod)
python中的self - 简明版
一篇文章让你彻底搞清楚Python中self的含义
python中的继承
关于Python中的类普通继承与super函数继承
Python 子类继承父类构造函数说明 - 菜鸟教程
Python学习笔记(4)Python中super的用法
python init()构造器中的super()使用用法
【Python】python 普通继承方式和super继承方式
菜鸟教程python教程super
python中网络请求
Python使用requests发送post请求
urllib.request详细介绍
HTTP 返回状态码
ImportError most likely due to a circular import 解决办法
python编写代码circular import问题
解决循环import的问题
python 循环依赖问题
ImportError: cannot import name ‘db‘ from partially initialized module ‘app‘ (most likely due to a c
pyqt5界面相关
PyQt5高清屏幕自适应设置 QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
PyQt5中sys.argv和sys.exit(app.exec_())
PyQt中主函数app=QApplication(sys.argv) sys.exit(app.exec_())的作用
PyQt5系列教程(78):QSS入门3
PyQt(Python+Qt)学习随笔:模式窗口的windowModality属性与modal属性
Qt模态界面设置setWindowModality禁止其他界面响应
PyQt5布局管理之QGridLayout - setLayout - addWidget
【Python】【PyQt5】addwidget的参数设置
Python基础之PyQt5关闭界面 - self.close
pyqt5-实时刷新页面(QApplication.processEvents())
Pyqt QApplication.processEvents() 防止页面锁死
QT窗体大小——setGeometry 和 resize区别
PyQt5布局管理之QGridLayout
QLineEdit使用详解
QTextEdit 实现 QLineEdit 的 setPlaceholderText() 和 setMaxLength ()函数
PyQt(Python+Qt)学习随笔:gridLayout的layoutRowMinimumHeight和layoutColumnMinimumWidth属性
PyQt5基本控件详解之QMessageBox
QT实验分析教程 Qt中的坐标系统 — geometry,frameGeometry()
qlabel 详解 - clear
Qt 之 QLabel - clear
鼠标相关
窗口跟随鼠标移动
PyQt5编程:鼠标事件1
PyQt5编程-鼠标事件2
QT类之事件mousePressEvent以及mouseMoveEvent
多线程
Python3 多线程 - threading.Thread; Queue
Python中如何清空Queue?
Python队列的三种队列实现方法
Python threading中event的使用
python之event事件
Python多线程-Event(事件对象)
Python threading中lock的使用
字节串
Python bytes类型及用法
启动界面
PyQt5编程(5):启动界面QSplashScreen
Qt学习16——程序启动画面QSplashScreen
勤奋的小青蛙 - PyQt SplashScreen示例,PyQt启动界面演示
model/view介绍入门
QStringListModel的简单使用
Qt QStandardItemModel用法(超级详细)
pyqt QStandardItemModel()清空数据
WindowFlags
PyQt中WindowFlags使用详解
无边框窗口FramelessWindowHint实现移动和缩放功能
关于字体
Qt 之字体设置(QFont)详解
关于右键菜单
PyQt5 右键菜单Context Menu 弹出的方法
PyQt5 之右键菜单
PyQt5 系统化学习: 表格与树
PyQt5中弹出框QDialog的show()和exec()的区别
PyQt5 右键菜单Context Menu 弹出的方法
关于显示图片
PyQt5 QPixmap简介
QT中QImage类
关于绘图
【Python】 【绘图】plt.figure()的使用
matplotlib(二):画布(figure)与坐标轴(axes)的布局
matplotlib画图系列之设置栅格,axes脊柱(坐标轴),背景颜色
matplotlib命令与格式:tick_params参数刻度线样式设置
表单控件 QTableWidget
PyQt5 QTableWidget(表单控件)自适应窗口大小、栏位大小调整及布局
Pyqt5之QTableWidget隐藏表头和设置行列名称
QLabel
Qt学习:QLabel的用法及其程序示例
EventFilter
PyQt学习随笔:应用中通过installEventFilter安装重写的eventFilter捕获应用事件的方法
PyQt里的EventFilter
pyqt5 事件event 过滤 installEventFilter eventFilter QEvent.MetaCall
opencv
学习opencv之cvtColor
cv2.imread()和cv2.cvtColor() 的使用
CNN编程中的问题——img.shape[0]、[1]、[2]到底代表什么
机器学习进阶-图像基本操作-数值计算 1.cv2.add(将图片进行加和) 2.cv2.resize(图片的维度变换) 3.cv2.addWeighted(将图片按照公式进行重叠操作)
彩色图像技术重要函数cv2.addWeighted()
Python-OpenCV 图像叠加or图像混合加权(cv2.addWeighted)
介绍OpenCV的MAT和QT的Qimage
#最全面# Python 中如何将 Pyqt5 下的 QImage 对象转换成 PIL image 或 opencv MAT (numpy ndarray) 对象
Python图像库PIL的类Image及其方法介绍
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
Python cv2.circle详细介绍
python opencv3 向图像里写字
Pyhon利用OpenCV在图片上显示文字及保存
Python 用 OpenCV 画直线 (3)
QTableView
QTableView根据内容自动调整大小(resizeColumnToContents解决不了的)
QTableView填充表格(函数:setSectionResizeMode()和setStretchLastSection())
QT表格的宽度自适应调整方法void setStretchLastSection ( bool stretch );
QT表格的宽度自适应调整方法
时间
python之time和datetime的常用方法
pyqtSignal
关于PyQt5中自定义信号的几点理解 - 传入的参数
《快速掌握PyQt5》第二章 信号与槽——裁判鸣枪与选手开跑
HTTP
HTTP: Request中的post和get区别
知识点讲解二:关于requests里的timeout()
requests.post 小坑: 默认无超时,会阻塞
Python Qt 网络
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。