
PyQT5
PyQT5 GUI教程
lbaihao
zephyr,data structure, algorithm, protocol,darknet,architecture
展开
-
pyqt5-事件机制
在pyqt中,每个事件类型都被封装成相应的事件类,如鼠标事件为QMouseEvent,键盘事件为QKeyEvent等。不同的事件消息都能通过相应的方法监听。button() - 返回以下枚举值(只列了部分,详细内容参见http://doc.qt.io/qt-5/qt.html#MouseButton-enum),用以判断是哪个鼠标健触发了事件。事件的转发:当子控件中有事件消息时,会优先在子控件中实现处理该消息的方法,如果没有则会传递至其父控件处理,如果还没处理则会在传递,直到被处理或不可再被传递。原创 2023-05-21 10:15:08 · 1424 阅读 · 0 评论 -
将UI文件转换为Py文件
【代码】将UI文件转换为Py文件。原创 2023-01-04 15:11:42 · 672 阅读 · 0 评论 -
Pyqt5使用多线程解决界面卡顿并将命令行输出重定向到UI
UI界面部分代码,在点击按钮之后将按钮设为不可点击状态,同时在接收到信号时候将按钮设置为可以点击状态.如果想要在1按钮函数运行结束之前,按钮处于不可点击状态也可以通过信号实现。先使用qtdesigner画两个按钮和两个text,用来检测功能。button1函数部分在添加一个信号,并在函数执行结束之后在发射。可以通过qt的QThread来解决。下面实现将命令行输出重定向到UI界面上。在使用pyuic将其转换为py文件。先给按钮2定义一个简单的函数,运行。这样在点击按钮UI界面也不会卡顿。原创 2022-12-11 21:19:04 · 699 阅读 · 0 评论 -
PyQt - 使用多线程避免界面卡顿
所以这种情况下必须使用多线程的方式来解决,即在主界面线程中在启动一个新的子线程,利用该子线程处理比较耗时的操作,然后通过signal-slot机制将子线程的数据反馈到主界面线程中,而且在子线程中不能操作界面。这就是所说的:UI只用来操作UI,子线程只用来处理数据,就是将UI的操作与耗时数据的处理进行分开处理。这是因为对于pyqt来说,界面线程是主线程,如果我们在主线程函数里面调用了一个耗时比较久的循环,可能就会造成主界面线程卡死在循环中,从而造成无法操作主界面或者主界面卡顿、卡死。原创 2022-12-11 16:31:59 · 3782 阅读 · 0 评论 -
pyOCD - 用于调试烧写 Cortex-M 芯片环境成功搭建
pyOCD 是一个开源 Python 软件包,用于多种受支持的硬件调试器(DAP-Link、J-Link、ST-Link)下编程和调试Arm Cortex-M微控制器。它是完全跨平台的,并支持Linux,macOS和Windows。它内置支持多达70种流行的MCU。pyOCD 允许用户通过命令来:烧录、擦除、单步、停止、设置断点、全速运行、芯片上锁、读写外设寄存器、读写存储空间等操作。原创 2022-10-16 11:39:41 · 15722 阅读 · 0 评论 -
pyQT5 UI 线程
from PyQt5.QtCore import QThread, pyqtSignal, QDateTimefrom PyQt5.QtWidgets import QApplication, QDialog, QLineEditimport timeimport sysclass BackendThread(QThread): """ 主窗口中创建线程更新数据 """ update_date = pyqtSignal(str) def run(sel.原创 2022-01-12 22:11:05 · 225 阅读 · 0 评论 -
pyqt5多线程更新ui
from PyQt5 import QtCorefrom PyQt5.QtCore import QTimer,QThreadfrom PyQt5.QtWidgets import QApplication, QMainWindowimport timefrom PyQt5.QtWidgets import QWidgetfrom PyQt5.QtWidgets import QMainWindow, QPushButton, QApplicationfrom PyQt5.QtWidgets .原创 2022-01-12 21:36:25 · 1336 阅读 · 0 评论 -
PyQT5 QMidArea同时显示多个窗口,创建多个独立的窗口
一种同时显示多个窗口的方法,创建多个独立的窗口,这些独立的窗口被称为SDI(single document interface 单文档界面),每个窗口都有自己的菜单系统,工具栏等,这需要占用很多资源。MDI( multiple document interface 多文档界面)应用程序占用较少的内存资源,子窗口可以放在主窗口的容器中,这个容器空间被称为QMidAreaQMidArea 空间通常占据在QMainWindow对象的中央位置,子窗口在这个区域是QMidSubWindow类的实例,可以设置.原创 2021-09-09 15:33:58 · 2191 阅读 · 0 评论 -
自定义对话框及其使用
import sysfrom PyQt5.QtWidgets import (QApplication, QDialog,QFileDialog, QColorDialog,QFontDialog,QProgressDialog, QLineEdit,QInputDialog,QMessageBox)from PyQt5.QtCore import Qt, pyqtSlot, QDir,QTime.原创 2021-06-27 15:32:53 · 274 阅读 · 0 评论 -
PyQt5调试记录
(1)设计Action(2)设计菜单和工具栏(3)信号与槽编辑器菜单槽函数不响应:(1)检查槽函数名字是否正确(2)Action Chenkable 是否勾选原创 2021-06-26 10:51:36 · 375 阅读 · 0 评论 -
PyQt5 音乐播放器实现
echo offrem 将子目录 QtApp 下的.ui文件复制到当前目录下,并且编译copy .\QtApp\MainWindow.ui MainWindow.uipyuic5 -o ui_MainWindow.py MainWindow.uirem 编译并复制资源文件pyrcc5 .\QtApp\res.qrc -o res_rc.py原创 2021-06-19 16:35:20 · 1123 阅读 · 1 评论 -
Python 中调用C DLL printf 输出顺序的问题
# -*- coding: utf-8 -*- import ctypes from ctypes import * import numpy as np import sys import struct def demo_dll(): """ 调用C动态库中的函数 """ mlibc = cdll.LoadLibrary('libutils.dll') print ("begin") n = mlibc.add(3, 4..原创 2021-04-29 16:28:15 · 765 阅读 · 2 评论 -
Python3+PyQT5+Pyserial 实现串口工具(一)
完整code 下载地址:import sysimport serialimport serial.tools.list_portsfrom PyQt5 import QtWidgetsfrom PyQt5.QtWidgets import QMessageBoxfrom PyQt5.QtCore import QTimerfrom ui_demo_1 import Ui_Formclass Pyqt5_Serial(QtWidgets.QWidget, Ui_Form): ..原创 2021-04-03 20:08:13 · 1541 阅读 · 3 评论 -
PyQt5高级界面控件之QTabWidget(一)
QTabWidget前言QTabWidget控件提供了一个选项卡和一个页面区域,默认显示第一个选项卡的页面,通过单击各选项卡可以查看对应的界面,如果在一个窗口中显示的输入字段很多,则可以对这些字段进行拆分,分别放置在不同界面的选项卡中QTabWidget类中常用的方法方法 描述addTab() 将一个控件添加到Tab控件的选项卡中insertTab() 将一个Tab控件的选项卡插入到指定的位置removeTab() 根据指定的索引删除Tab控件setCurrentInd...原创 2021-03-31 13:51:10 · 2123 阅读 · 0 评论 -
QtCreator2.8.0+QtOpenSource4.8.5环境配置(初学者必看)
开始使用QT时,环境配置好了,以后才不会有这方面的麻烦,所以第一步,把自己的工作环境搭建好! 下面是我的环境搭建过程,留个记录,也为了后来者能少走一些弯路。注:本人的系统是WIN7x64位的,其他系统没有尝试过,所以不保证其他系统使用本教程能一帆风顺。 1. 下载安装文件 要使用QT功能,那么必须要下载QT的源码,还必转载 2016-06-11 15:55:23 · 6840 阅读 · 3 评论