当前位置: 首页 > news >正文

PyQt5+Qt设计师初探

        在上一篇文章中我们搭建好了PyQt5的开发环境,打铁到趁热我们基于搭建好的环境来简单实战一把

一:PyQt5包模块简介

PyQt5包括的主要模块如下。

  • QtCore模块——涵盖了包的核心的非GUI功能,此模块被用于处理程序中涉及的时间、文件、目录、数据类型、文本流、链接、QMimeData、线程或进程等对象。
  • QtGui模块——涵盖了多种基本图形功能的类,包括但不限于:窗口集、事件处理、2D图形、基本的图像和界面、字体和文本类。
  • QtWidgets模块——包含了一整套UI元素控件,用于建立符合系统风格的Classic界面,非常方便,可以在安装时选择是否使用此功能。
  • QtMultimedia模块——包含了一套类库,用于处理多媒体事件,通过调用API接口访问摄像头、语音设备、收发消息(Radio Functionality)等。
  • QtBluetooth模块——包含了处理蓝牙活动的类库,其功能包括:扫描设备、连接、交互等行为。
  • QtNetwork模块——包含了用于进行网络编程的类库,通过提供便捷的TCP/IP及UDP的C/S代码集合,使得基于Qt的网络编程更容易。
  • QtPositioning模块——用于获取位置信息,此模块允许使用多种方式实现定位,包括但不限于:卫星、无线网、文字信息。此模块一般用在网络地图定位系统中。
  • Enginio模块——用于构建客户端的应用程序库,在运行时访问Qt Cloud 服务器托管的应用程序。
  • QtWebSockets模块——包含了一组类程序,用于实现WebSocket协议。
  • QtWebKit模块——包含了用于实现基于WebKit2的网络浏览器的类库。
  • QtWebKitWidgets模块——提供了一组类库,用于实现一种由Widgets包构建的、基于WebKit1的网络浏览器。
  • QtXml模块——包含了用于处理XML的类库,此模块为SAX和DOM API 的实现提供了函数。
  • QtSvg模块——通过一组类库,为显示矢量图形文件的内容提供了函数。
  • QtSql模块——提供了数据库对象的接口以供使用。
  • QtTest模块——包含了通过单元测试,调试PyQt5应用程序的功能。
  • QtHelp模块——包含了用于创建和查看可查找的文档的类。
  • QtOpenGL模块——使用OpenGL库来渲染3D和2D图形。该模块使得Qt GUI库和OpenGL库无缝集成。
  • QtXmlPatterns模块——所包含的类实现了对XML和自定义数据模型的Xquery与XPath的支持。
  • QtDesigner模块——所包含的类允许使用PyQt扩展Qt Designer。
  • Qt模块——将上面模块中的类综合到一个单一的模块中。这样做的好处是你不用担心哪个模块包含了哪个特定的类;坏处是加载到整个Qt框架中,从而增加了应用程序的内存占用。
  • uic模块——所包含的类用来处理.ui文件,该文件由Qt Designer创建,用于描述整个或者部分用户界面。它可以将.ui文件编译为.py文件,以便其他Python程序调用。

PyQt5增加了很多模块,可以去官方网站查看,基本上看模块名字就知道大概用处了。PyQt5已经没有phonon模块了,使用QtMultimedia来处理媒体。
另外,PyQt5新增的QtWebEngineWidgets模块替代了过时的QtWebKit,但是QtWebKit还在,而新模块更耗内存,具体使用哪个由读者自己决定。

PyQt 5主要类介绍

PyQt5 API拥有620多个类和6000个函数。它是一个跨平台的工具包,可以运行在所有主流的操作系统上,包括Windows、Linux和Mac OS。

  • QObject类:在类层次结构中是顶部类(Top Class),它是所有PyQt对象的基类。
  • QPaintDevice类:所有可绘制的对象的基类。
  • QApplication类:用于管理图形用户界面应用程序的控制流和主要设置。它包含主事件循环,对来自窗口系统和其他资源的所有事件进行处理和调度;它也对应用程序的初始化和结束进行处理,并且提供对话管理;还对绝大多数系统范围和应用程序范围的设置进行处理。
  • QWidget类:所有用户界面对象的基类。QDialog类和QFrame类继承自QWidget类,这两个类有自己的子类系统(Sub-Class System)。
  • QFrame类:有框架的窗口控件的基类。它也被用来直接创建没有任何内容的简单框架,但是通常要用到QHBox或QVBox,因为它们可以自动布置放到框架中的窗口控件。
  • QMainWindow类:提供一个有菜单栏、锚接窗口(如工具栏)和状态栏的主应用程序窗口。
  • QDialog类:最普通的顶级窗口。如果一个窗口控件没有被嵌入到父窗口控件中,那么该窗口控件就被称为顶级窗口控件。在通常情况下,顶级窗口控件是有框架和标题栏的窗口。在Qt中,QMainWindow和不同的QDialog的子类是最普通的顶级窗口。
  • QLabel控件:用来显示文本或图像。
  • QLineEdit窗口控件:提供了一个单页面的单行文本编辑器。
  • QTextEdit窗口控件:提供了一个单页面的多行文本编辑器。
  • QPushButton窗口控件:提供了一个命令按钮。
  • QRadioButton控件:提供了一个单选钮和一个文本或像素映射标签。
  • QCheckBox窗口控件:提供了一个带文本标签的复选框。
  • QspinBox控件:允许用户选择一个值,要么通过按向上/向下键增加/减少当前显示值,要么直接将值输入到输入框中。
  • QScrollBar窗口控件:提供了一个水平的或垂直的滚动条。
  • QSlider控件:提供了一个垂直的或水平的滑动条。
  • QComboBox控件:一个组合按钮,用于弹出列表。
  • QMenuBar控件:提供了一个横向菜单栏。
  • QStatusBar控件:提供了一个适合呈现状态信息的水平条,通常放在QMainWindow的底部。
  • QToolBar控件:提供了一个工具栏,可以包含多个命令按钮,通常放在QMainWindow的顶部。
  • QListView控件:可以显示和控制可选的多选列表,可以设置ListMode或IconMode。
  • QPixmap控件:可以在绘图设备上显示图像,通常放在QLabel或QPushButton类中。
  • Qdialog控件:对话框窗口的基类。

QWidget是所有用户界面类的基类,它能接收所有的鼠标、键盘和其他系统窗口事件。没有被嵌入到父窗口中的Widget会被当作一个窗口来调用,当然,它也可以使用setWindowFlags(Qt.WindowFlags)函数来设置窗口的显示效果。QWidget的构造函数可以接收两个参数,其中第一个参数是该窗口的父窗口;第二个参数是该窗口的Flag,也就是Qt.WindowFlags。根据父窗口来决定Widget是嵌入到父窗口中还是被当作一个独立的窗口来调用,根据Flag来设置Widget窗口的一些属性。
QMainWindow(主窗口)一般是应用程序的框架,在主窗口中可以添加所需要的Widget,比如添加菜单栏、工具栏、状态栏等。主窗口通常用于提供一个大的中央窗口控件(如文本编辑或者绘制画布)以及周围的菜单栏、工具栏和状态栏。QMainWindow常常被继承,这使得封装中央控件、菜单栏,工具栏以及窗口状态变得更容易,也可以使用Qt Designer来创建主窗口。

二:实战

1,选择控件

需要三个控件,PushButton, Horizontal Spacer, Text Edit

PushButton:按钮

Horizontal Spacer:水平填充,主要是为了布局好看

Text Edit:显示

2,控件布局

先同时选中PushButton和Horizontal Spacer,然后点击水平布局

同时选中三个控件,点击垂直布局

3,指定点击事件

 点击上图中带箭头的按钮,进入事件编辑模式,然后光标移动到“PushButton”按钮上----鼠标左键点击“PushButton”不要松开--拖动光标到界面上的的任一空白位置后再松开鼠标左键(需要注意的是需要移到空白位置出现接地的图标才能自己指定事件函数,如果鼠标拖到下边的Text Edit控件就是另外一个效果了,只能使用既定的函数,如下图)

4,指定事件函数

点击保存成ui文件

4,ui转成python文件

转换完成后出现了一个firstUI.py文件

5,程序实现

新建main.py

import sys
from PyQt5.QtWidgets import QApplication, QWidget
from firstUI import Ui_Formclass MyPyQT_Form(QWidget,Ui_Form):def __init__(self):super(MyPyQT_Form,self).__init__()self.setupUi(self)def pushButton_show(self):self.textEdit.setText("按钮点击")if __name__ == '__main__':app = QApplication(sys.argv)my_pyqt_form = MyPyQT_Form()my_pyqt_form.show()sys.exit(app.exec_())

运行

 

相关文章:

PyQt5+Qt设计师初探

在上一篇文章中我们搭建好了PyQt5的开发环境,打铁到趁热我们基于搭建好的环境来简单实战一把 一:PyQt5包模块简介 PyQt5包括的主要模块如下。 QtCore模块——涵盖了包的核心的非GUI功能,此模块被用于处理程序中涉及的时间、文件、目录、数…...

rust cargo

一、cargo是什么 Cargo是Rust的构建工具和包管理器。 Cargo除了创建工程、构建工程、运行工程等功能,还具有下载依赖库、编译依赖等功能。 真正编写程序时,我们不直接用rustc,而是用cargo。 二、使用cargo (一)使用…...

CANoe.Diva生成测试用例

Diva目录 一、CANoe.Diva打开CDD文件二、导入CDD文件三、ECU Information四、时间参数设置五、选择是否测试功能寻址六、勾选需要测试服务项七、生成测试用例 一、CANoe.Diva打开CDD文件 CANoe.Diva可以通过导入cdd或odx文件,自动生成全面的测试用例。再在CANoe中导…...

openGauss学习笔记-89 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用查询原生编译

文章目录 openGauss学习笔记-89 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用查询原生编译89.1 查询编译:PREPARE语句89.2 运行命令89.3 轻量执行支持的查询89.4 轻量执行不支持的查询89.5 JIT存储过程89.6 MOT JIT诊断89.6.1 mot_jit_detai…...

python获取时间戳

使用 datetime 库获取时间。 获取当前时间: import datetime print(datetime.datetime.now()) . 后面的是微秒,也是一个时间单位,1秒1000000微秒。 转为时间戳: import datetimedate datetime.datetime.now() timestamp date…...

2023年山东省安全员C证证考试题库及山东省安全员C证试题解析

题库来源:安全生产模拟考试一点通公众号小程序 2023年山东省安全员C证证考试题库及山东省安全员C证试题解析是安全生产模拟考试一点通结合(安监局)特种作业人员操作证考试大纲和(质检局)特种设备作业人员上岗证考试大…...

Java中的Unicode字符编码与占用比特位解析

本文将详细介绍Java中Unicode字符编码与占用比特位的相关知识。我们将首先介绍Unicode字符集的基本概念,然后深入探讨Java中Unicode字符的编码方式以及占用比特位的特点。最后,我们将讨论一些特殊字符的编码情况,并给出一些在Java中处理Unico…...

分布式事务-TCC案例分析流程图

防止cancel方法在最后执行出现问题,用户收到提示已经退款成功但是由于cancel过慢或者出现问题(虽然最后会重试成功但是用户体验很差),可以做以下的业务sql模型优化(增加一个冻结金额)。...

究竟是什么样的讲解数组算法的博客让我写了三小时???

版本说明 当前版本号[20231004]。 版本修改说明20231004初版 目录 文章目录 版本说明目录二. 基础数据结构2.1 数组1) 概述2) 动态数组1)插入addlast 方法测试: addlast 方法 add 方法测试:add方法 addlast 方法与 add 方法合并版get 方法测试&#x…...

Day-05 CentOS7.5 安装docker

参考 : Install Docker Engine on CentOS | Docker DocsLearn how to install Docker Engine on CentOS. These instructions cover the different installation methods, how to uninstall, and next steps.https://docs.docker.com/engine/install/centos/ Doc…...

Makefile

目录 Makefile Makefile格式 Makefile函数:foreach和wildcard $(foreach var,list,text) $(wildcard pattern) 完善Makefile Makefile 在Linux中使用make工具来编译程序(特别是大程序),而make工具所执行的动作依赖于Makefil…...

c语言练习77:公因⼦的数⽬

公因⼦的数⽬ 题⽬描述: 给你两个正整数 a 和 b ,返回 a 和 b 的公因⼦的数⽬。 如果 x 可以同时整除 a 和 b ,则认为 x 是 a 和 b 的⼀个公因⼦ 。 • ⽰例 1: 输⼊:a 12, b 6 输出:4 解释&#…...

【C++】C++11——右值引用和移动语义、左值引用和右值引用、右值引用使用场景和意义、完美转发、新的类功能

文章目录 C115.右值引用和移动语义5.1左值引用和右值引用5.2左值引用与右值引用比较5.3右值引用使用场景和意义5.4右值引用引用左值及其一些更深入的使用场景分析5.5完美转发 6.新的类功能 C11 5.右值引用和移动语义 右值引用是C11引入的一个新特性,用于支持移动语义…...

Spring Boot的创建和使用(JavaEE进阶系列2)

目录 前言: 1.什么是Spring Boot?为什么要学习Spring Boot? 2.Spring Boot优点 3.创建Spring Boot项目 3.1准备工作 3.2Spring Boot创建 3.2.1通过idea的方式创建 3.2.2通过网页创建 4.Spring Boot中的配置文件 4.1Spring Boot配置…...

【OLSR路由协议】链路状态路由(OLSR)协议中选择多点中继节点算法研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

双重差分模型(DID)论文写作指南与操作手册

手册链接:双重差分模型(DID)论文写作指南与操作手册https://www.cctalk.com/m/group/90983583?xh_fshareuid60953990 简介: 当前,对于准应届生们来说,毕设季叠加就业季,写作时间显得十分宝贵…...

ping 的工作原理

ping 是一个常用于网络诊断的命令行工具,用于测试两台计算机之间的网络连通性。它的工作原理如下: 发出 ICMP Echo 请求: 当你在终端中运行 ping 命令并指定目标主机的IP地址或域名时,计算机会创建一个特殊的ICMP(In…...

93. 复原 IP 地址

有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 . 分隔。 例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,但是 "0.011.255.24…...

竞赛选题 机器视觉的试卷批改系统 - opencv python 视觉识别

文章目录 0 简介1 项目背景2 项目目的3 系统设计3.1 目标对象3.2 系统架构3.3 软件设计方案 4 图像预处理4.1 灰度二值化4.2 形态学处理4.3 算式提取4.4 倾斜校正4.5 字符分割 5 字符识别5.1 支持向量机原理5.2 基于SVM的字符识别5.3 SVM算法实现 6 算法测试7 系统实现8 最后 0…...

第15届蓝桥STEMA测评真题剖析-2023年8月20日Scratch编程中级组

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第155讲。 第15届蓝桥第1次STEMA测评,这是2023年8月20日举办的STEMA,比赛仍然采取线上形式。这…...

实时交易系统架构设计:从事件驱动到向量化框架的终极指南

实时交易系统架构设计:从事件驱动到向量化框架的终极指南 【免费下载链接】awesome-systematic-trading A curated list of insanely awesome libraries, packages and resources for systematic trading. Crypto, Stock, Futures, Options, CFDs, FX, and more | 量…...

RTX4090D显存优化:OpenClaw长文本处理实测Qwen3-32B性能

RTX4090D显存优化:OpenClaw长文本处理实测Qwen3-32B性能 1. 测试背景与实验设计 去年我在处理学术论文时,经常遇到需要分析几十页PDF的情况。传统工具要么截断文本,要么丢失关键上下文。当我发现OpenClaw支持本地部署大模型后,立…...

如何高效使用NumPy结构化数组:处理复杂数据格式的终极指南

如何高效使用NumPy结构化数组:处理复杂数据格式的终极指南 【免费下载链接】numpy numpy/numpy: NumPy 是一个用于 Python 的数值计算库,提供了多种数学函数和工具,可以用于数值计算和科学计算,支持多种数学函数和工具&#xff0c…...

石墨烯这玩意儿在COMSOL里折腾起来挺有意思的,特别是搞太赫兹和近红外的同学估计都遇到过选模型的纠结。今天咱们就聊点实战经验,顺便甩点代码片段

Comsol石墨烯二维材料。 包含太赫兹德鲁得和近红外Kubo两种模型。 共7个案例,包含参考文献。先说说太赫兹波段常用的德鲁得模型,这货相当于把石墨烯当经典等离子体处理。在COMSOL里实现时,关键要设置表面电流密度: sigma_drude (…...

快速找回Chrome密码:ChromePass终极使用指南

快速找回Chrome密码:ChromePass终极使用指南 【免费下载链接】chromepass Get all passwords stored by Chrome on WINDOWS. 项目地址: https://gitcode.com/gh_mirrors/chr/chromepass 你是否曾经因为忘记Chrome浏览器中保存的重要登录密码而感到困扰&#…...

基于训练RBF神经网络的车速信息时序预测Matlab模型

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…...

从CentOS 7迁移到Ubuntu 22.04 LTS,我整理了一份保姆级系统初始化脚本(含内核调优、换源、时区设置)

从CentOS 7迁移到Ubuntu 22.04 LTS:系统初始化与性能调优全指南 当CentOS 7走向生命周期的终点,许多运维团队正面临向新平台的战略转移。Ubuntu 22.04 LTS以其长期支持特性和活跃的社区生态,成为最受欢迎的替代选择之一。但迁移绝非简单的系统…...

Jable视频下载终极指南:3步免费保存你喜欢的视频内容

Jable视频下载终极指南:3步免费保存你喜欢的视频内容 【免费下载链接】jable-download 方便下载jable的小工具 项目地址: https://gitcode.com/gh_mirrors/ja/jable-download jable-download是一款专为Jable.tv视频平台设计的免费下载工具,通过Ch…...

宁波小程序公司提供专业的小程序开发服务

在宁波小程序公司的服务中,我们致力于为客户提供清晰的内容结构和流畅的表达。我们通过深入的需求分析,确保每个项目都能符合客户特定的期望和市场需求。设计阶段注重市场调研,力求在视觉和功能上都能满足用户的使用习惯和偏好。开发过程中&a…...

手把手教你用ROS2和ZED2 SDK搭建3D视觉开发环境(Ubuntu 20.04版)

手把手教你用ROS2和ZED2 SDK搭建3D视觉开发环境(Ubuntu 20.04版) 在自动驾驶、增强现实和机器人导航等领域,3D视觉感知已成为核心技术之一。ZED2相机凭借其双目深度感知能力和高精度SLAM算法,成为开发者构建空间智能系统的首选传感…...