我的第一个PyQt5程序
PyQt5的开发环境配置完成之后,开始编写第一个PyQt5的程序。
方法一:使用将.ui转换成.py文件的方法
import sys
from FirstPyQt import Ui_MainWindow
from PyQt5.QtWidgets import *#QtCore,QtGui,QtWidgets
# from QtTest import Ui_MainWindow#导入QtTest.py中的Ui_MainWindow界面类 这个和FirstPyQt一次性只能使用一个哦,因为父类相同#类似qt里面的拖控件
# class MyMainWindow(QMainWindow,Ui_MainWindow):
# def __init__(self,parent=None):
# super(MyMainWindow,self).__init__(parent)#初始化父类
# self.setupUi(self)
# self.pushButton.clicked.connect(self.button_clicked)
#
# def button_clicked(self):
# self.label.setText("button clicked...")#此方法 不用.ui转换成.py,类似qt里面的写在代码里面的
class MainWindow(QMainWindow):def __init__(self):super().__init__()self.setWindowTitle("信号与槽示例")# 创建一个按钮button = QPushButton("点击我", self)button.setStyleSheet('color:red;background-color:green;font-size:22pt')# 将按钮的 clicked 信号连接到自定义槽函数button.clicked.connect(self.button_clicked)# 设置按钮为中央控件self.setCentralWidget(button)def button_clicked(self):# 按钮点击后执行的操作print("按钮被点击!")#类似qt里面的拖控件
class MyFirstUi(QMainWindow,Ui_MainWindow):def __init__(self,parent=None):super(MyFirstUi,self).__init__(parent)#初始化父类self.setupUi(self)self.pushButton.clicked.connect(self.button_clicked)def button_clicked(self):self.textEdit.append("button clicked...")# 按间距中的绿色按钮以运行脚本。
# 它检查当前模块是否作为主程序运行,这样可以确保代码的可复用性和可测试性。
if __name__ == '__main__':app = QApplication(sys.argv)# ui = FirstPyQt.Ui_MainWindow()# widget = MyMainWindow()#QtWidgets.QWidget()widget = MyFirstUi()#MyMainWindow()#MainWindow()#调自定义的界面widget.resize(800,600)# widget.setWindowTitle("hello,pyqt5,第一个基于pyqt5的程序")# 显示窗口,并释放资源widget.show()sys.exit(app.exec())#用于启动应用程序的主事件循环并确保应用程序在退出时正确清理资源。

实现了基础的信号槽,界面显示。
使用qt designer.exe编辑ui界面,通过PyUIC,实现将.ui文件转换成.py文件,也可以使用命令
pyuic5.exe -o xxx.ui xxx.py
。在使用命令的时候,一定注意路径,或者直接在pycharm中的终端里面输入以上命令,即可完成转换。
需要使用哪个.py,参考以上代码,直接import即可。
方法二:直接使用.ui文件。
导入 from PyQt5.uic import loadUi
import sys
try:from PyQt5.QtWidgets import QApplication, QWidget,QMainWindowfrom PyQt5.uic import loadUiprint("PyQt5 installed successfully")
except ImportError as e:print(f"Error: {e}")# import FirstPyQt
class MyFirstUi(QMainWindow):def __del__(self):print('python 析构函数~')def __init__(self):# super().__init__()super(MyFirstUi, self).__init__()try:loadUi('FirstPyQt.ui',self)#加载.ui文件print("ui loaded successfully")except Exception as e:#as 关键字用于将捕获的异常绑定到一个变量print(f"Error loading UI:{e}")raise#用于手动引发异常,可以在代码中抛出指定的异常,以便在更高层次的代码中处理。self.show()# 检查 pushButton 是否存在if hasattr(self, 'pushButton'):print("pushButton found")self.pushButton.clicked.connect(self.on_button_click)else:print("pushButton not found")
#注意:其实.ui文件中是有这些内容的,但是我self.不出来里面的控件,只有去.ui文件里查看有哪些控件了,控件的使用方法,只有靠自己查找qt creator的帮助、百度或者平时记录一些常用的方法和函数了
#但是将.ui文件转换为.py文件,就可以self.出来相应的控件及其函数def on_button_click(self):print("Button clicked!")self.textEdit.append('Button clicked~~~~')self.textEdit.setStyleSheet('background-color:blue;')if __name__ == "__main__":app = QApplication(sys.argv)window = MyFirstUi()window.show()sys.exit(app.exec())
相关文章:
我的第一个PyQt5程序
PyQt5的开发环境配置完成之后,开始编写第一个PyQt5的程序。 方法一:使用将.ui转换成.py文件的方法 import sys from FirstPyQt import Ui_MainWindow from PyQt5.QtWidgets import *#QtCore,QtGui,QtWidgets # from QtTest import Ui_MainWindow#导入Q…...
Unity调用Python
代码如下: if (useAI){/** 通过PaddlePaddle进行合成处理* */// 创建线程参数对象ThreadParameters parameters new ThreadParameters(){pythonPath "python", // 如果 Python 在系统路径中,可以直接使用 "python"pythonScript U…...
前端,location.reload刷新页面
location.reload() 是 JavaScript 中的一个方法,它用于重新加载当前页面。当你调用这个方法时,浏览器会重新加载当前页面的资源,就像用户点击了浏览器的刷新按钮一样。 基本用法 // 刷新当前页面 location.reload();带参数的用法 location…...
5G的发展演进
5G发展的驱动力 什么是5G [远程会议,2020年7月10日] 在来自世界各地的政府主管部门、电信制造及运营企业、研究机构约200多名会议代表和专家们的共同见证下,ITU-R WP 5D#35e远程会议宣布3GPP 5G技术(含NB-IoT)满足IMT-2020 5G技…...
数据库参数备份
MySQL #!/bin/bash # 获取当前日期和时间的时间戳 TIMESTAMP$(date "%Y%m%d-%H%M%S")# 0、创建目录 mkdir /tmp/parameter_$TIMESTAMP/# 1、获取所有命名空间 echo "1、获取所有命名空间" NAMESPACES$(kubectl get ns | grep qfusion- | grep -v qfusion-…...
PG数据库 数据库时间字段 开始时间和结束时间,判断和查询条件的开始和截止时间存在交集,SQL如何编写
PG 数据库时间字段 开始时间和结束时间,判断和查询条件的开始和截止时间存在交集,SQL如何编写? 在 PostgreSQL 中,如果你想要查询那些时间段(由 开始时间 和 结束时间 定义)与给定的时间段有交集的记录&am…...
k8s服务内容滚动升级以及常用命令介绍
查看K8S集群所有的节点信息 kubectl get nodes 删除K8S集群中某个特定节点 kubectl delete nodes/10.0.0.123 获取K8S集群命名空间 kubectl get namespace 获取K8S所有命名空间的那些部署 kubectl get deployment --all-namespaces 创建命名空间 web界面上看到的效果,但是…...
机器学习: LightGBM模型(优化版)——高效且强大的树形模型
LightGBM(Light Gradient Boosting Machine)是一种基于梯度提升决策树(GBDT)的框架,由微软提出。它具有高效的训练速度、低内存占用、支持并行和GPU加速等特点,非常适合大规模数据的训练任务,尤…...
Wordpress常用配置,包括看板娘跨域等
一个Wordpress的博客已经搭建完成了,那么为了让它看起来更有人间烟火气一点,有一些常用的初始配置,这里整理一下。 修改页脚 页脚这里默认会显示Powered by Wordpress,还有一个原因是这里要加上备案信息。在主题里找到页脚&…...
Python学习从0到1 day27 Python 高阶技巧 ③ 设计模式 — 单例模式
此去经年,再难同游 —— 24.11.11 一、什么是设计模式 设计模式是一种编程套路,可以极大的方便程序的开发最常见、最经典的设计模式,就是我们所学习的面向对象了。 除了面向对象外,在编程中也有很多既定的套路可以方便开发,我们称之为设计模…...
Unity 网格模型及优化
一个模型中可以包含很多网格,一个模型可以由多个网格组成。在Unity3D中一个网格可以由多个子网格(Sub-Mesh)组成。 在渲染引擎的时候,每个子网格都要匹配一个材质球来做渲染,实际上一个子网格本身就是一个个普通的模型࿰…...
离线 快速搭建 docker docker-compose k8s 环境
所需资源 sealos_5.0.1_linux_arm64.tar.gzkubernetes.tar等docker-compose-linux-aarch64 离线安装sealos,用于安装k8sdocker 首先安装sealos工具 tar zxvf sealos_5.0.1_linux_arm64.tar.gz sealos && chmod x sealos && mv sealos /usr/bin*…...
Excel根据条件动态索引单元格范围
假如我是一个老板,下面有数不胜数的员工,我要检查他们每周的工作产出,列一个排行榜,提高员工积极性,毕竟多劳多得嘛。 每天去手动统计,未免显得不太聪明,我们可以利用公式来解决这个问题。 我们…...
【计算机网络五】HTTP协议!网站运行的奥秘!
目录 HTTP协议 1.HTTP是什么? 2.Fiddler抓包查看HTTP协议格式 3.HTTP请求 4.HTTP响应 HTTP协议 1.HTTP是什么? HTTP ( 全称为 " 超文本传输协议 ") 诞生与 1991 年 . 目前已经发展为最主流使用的一种应用层协议 . HTTP 的前几个版本…...
开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-tool usage入门-Qwen-Agent深入学习(四)
一、前言 Qwen-Agent 是一个利用开源语言模型Qwen的工具使用、规划和记忆功能的框架。其模块化设计允许开发人员创建具有特定功能的定制代理,为各种应用程序提供了坚实的基础。同时,开发者可以利用 Qwen-Agent 的原子组件构建智能代理,以理解和响应用户查询。 本篇将换一种方…...
stream学习
Stream流 定义 Steam流,用于操作集合或者数组中的数据,大量结合了Lamda表达式的语法风格,代码简洁。 重点: 流只能收集一次 获取Stream流 Stream流要与数据源建立连接。 1.list 直接调用steam()即可 // list List<Stri…...
【数据结构】实验二 单链表的基本操作
一、实验目的 掌握线性表的链式存储结构的表示和实现方法。 掌握链表基本操作的算法实现,以及对相应算法的性能分析。 二、实验内容 1)根据输入的一系列整数,以0标志结束,用头插法建立单链表,并输出单链表中各元素…...
SQL 分组查询中的非聚合列要求及实例解析
在 SQL 查询中,当我们对数据进行分组时,通常会用到 GROUP BY 子句。SQL 标准要求:所有非聚合列(即没有使用聚合函数的列)都必须出现在 GROUP BY 子句中,或者是聚合函数的结果。这篇文章通过一个实例来说明这…...
Unity中实现战斗帧同步的高级技术
一、帧同步的基本原理 帧同步(Frame Synchronization)在网络游戏中指的是在每一帧上保证所有玩家所看到的游戏状态一致,而不是每个玩家单独计算自己的状态。实现帧同步通常需要每个客户端仅发送用户输入到服务器,并由服务器进行全…...
Qt 正则表达式提取文件中的 USB 设备 ID
Qt 正则表达式提取文件中的 USB 设备 ID flyfish 文档内容 Bus: 001 Device: 001 Description: 1d6b:0002 Linux Foundation 2.0 root hub Bus: 002 Device: 003 Description: 0e0f:0002 , Inc. USB Hub Bus: 002 Device: 002 Description: 0e0f:0003 , Inc. Mouse Bus: 002…...
大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
