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

我的第一个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())

http://www.lryc.cn/news/484847.html

相关文章:

  • Unity调用Python
  • 前端,location.reload刷新页面
  • 5G的发展演进
  • 数据库参数备份
  • PG数据库 数据库时间字段 开始时间和结束时间,判断和查询条件的开始和截止时间存在交集,SQL如何编写
  • k8s服务内容滚动升级以及常用命令介绍
  • 机器学习: LightGBM模型(优化版)——高效且强大的树形模型
  • Wordpress常用配置,包括看板娘跨域等
  • Python学习从0到1 day27 Python 高阶技巧 ③ 设计模式 — 单例模式
  • Unity 网格模型及优化
  • 离线 快速搭建 docker docker-compose k8s 环境
  • Excel根据条件动态索引单元格范围
  • 【计算机网络五】HTTP协议!网站运行的奥秘!
  • 开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-tool usage入门-Qwen-Agent深入学习(四)
  • stream学习
  • 【数据结构】实验二 单链表的基本操作
  • SQL 分组查询中的非聚合列要求及实例解析
  • Unity中实现战斗帧同步的高级技术
  • Qt 正则表达式提取文件中的 USB 设备 ID
  • 使用 Python 和 OpenCV 实现摄像头人脸检测并截图
  • 【二叉搜素树】——LeetCode二叉树问题集锦:6个实用题目和解题思路
  • 【计算机视觉】FusionGAN
  • 问:SQL优化,七条实践总结?
  • unity单例模式的不同声明(待完善
  • 大模型在蓝鲸运维体系应用——蓝鲸运维开发智能助手
  • vue2,vue3响应式的理解
  • 群控系统服务端开发模式-应用开发-前端退出功能
  • Web入门
  • 基于SpringBoot网上超市的设计与实现录像
  • python爬虫(二)爬取国家博物馆的信息