用pyside6创建一个界面并实现一个小功能且能打包成问题记录

news/2025/3/1 16:54:28/

在这里插入图片描述
现在我们要开发一个程序,让用户输入一段文本包含:员工姓名、薪资、年龄。该程序可以把薪资在 2万 以上、以下的人员名单分别打印出来。

1用designer创建界面并生成UI文件;

2直接调用ui文件实现功能;

from PySide6.QtWidgets import QApplication, QMessageBox
from PySide6.QtUiTools import QUiLoaderuiLoader = QUiLoader()
class Stats:def __init__(self):# 从文件中加载UI定义# 从 UI 定义中动态 创建一个相应的窗口对象# 注意:里面的控件对象也成为窗口对象的属性了# 比如 self.ui.button , self.ui.textEditself.ui = QUiLoader().load('hello.ui')self.ui.pushButton.clicked.connect(self.handleCalc)def handleCalc(self):info = self.ui.textEdit.toPlainText()salary_above_20k = ''salary_below_20k = ''for line in info.splitlines():if not line.strip():continueparts = line.split(' ')parts = [p for p in parts if p]name,salary,age = partsif int(salary) >= 20000:salary_above_20k += name + '\n'else:salary_below_20k += name + '\n'QMessageBox.about(self.ui,'统计结果',f'''薪资20000 以上的有:\n{salary_above_20k}\n薪资20000 以下的有:\n{salary_below_20k}''')app = QApplication([])
stats = Stats()
stats.ui.show()
app.exec()

3转为py文件调用

在pycharm中用全命令,避免配置方式导致的不能调用的问题:

C:\Users\.conda\envs\occsource\Scripts\pyside6-uic.exe hello.ui -o helloui.py
import sys
from PySide6.QtWidgets import QApplication, QWidget,QMessageBox
from helloui import Ui_Form  # 替换为你的文件名class MainWindow(QWidget):def __init__(self):super().__init__()self.ui = Ui_Form()self.ui.setupUi(self)self.ui.pushButton.clicked.connect(self.handleCalc)def handleCalc(self):info = self.ui.textEdit.toPlainText()salary_above_20k = ''salary_below_20k = ''for line in info.splitlines():if not line.strip():continueparts = line.split(' ')parts = [p for p in parts if p]name,salary,age = partsif int(salary) >= 20000:salary_above_20k += name + '\n'else:salary_below_20k += name + '\n'QMessageBox.about(self,'统计结果',f'''薪资20000 以上的有:\n{salary_above_20k}\n薪资20000 以下的有:\n{salary_below_20k}''')if __name__ == "__main__":app = QApplication(sys.argv)window = MainWindow()window.show()sys.exit(app.exec())

4打包

需要安装pyinstaller:
在pycharm中收缩找到pyinstaller,安装就行;

由于没有在环境中指定pyinstall,可以切换到控制台,用全安装路径调用(记得把ui文件和生成的spec文件拷过去:

C:\Users\zhangpp-b\.conda\envs\occsource\Scripts\pyinstaller.exe 调用ui.py --noconsole

其中

–noconsole 指定不要命令行窗口,否则我们的程序运行的时候,还会多一个黑窗口。 但是我建议大家可以先去掉这个参数,等确定运行成功后,再加上参数重新制作exe。因为这个黑窗口可以显示出程序的报错,这样我们容易找到问题的线索。
在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/1575824.html

相关文章

爬虫项目:使用Python爬虫从电商平台采集评论数据并进行情感分析

文章目录 1. 环境搭建1.1 安装 Python1.2 安装依赖库2. 分析目标网站2.1 选择目标电商平台2.2 分析网页结构3. 采集 Amazon 评论数据4. 情感分析4.1 安装 TextBlob4.2 分析情感4.3 情感分类5. 完整示例7. 注意事项8. 总结在电商数据分析中,商品评论是了解用户反馈和产品表现的…

天佐.崆峒印 异常崩溃检测分析

天佐.崆峒印 天佐.崆峒印 简介 天佐.崆峒印 Windows平台下应用程序发生崩溃时, 生成崩溃转储文件用于分析定位到崩溃代码行,同时生成系统环境相关信息。 传说: 崆峒海上不死龙族的护守神器,其上刻塑有五方天帝形貌,并有玉龙盘绕。自古相传得…

深入浅出泰森多边形Voronoi算法

概述 Voronoi图,又称泰森多边形或狄利克雷镶嵌,是一种基于离散点集的空间划分方法。每个区域内的点到其对应控制点的距离比到其他控制点更近,边界由相邻控制点连线的垂直平分线构成。Voronoi图广泛应用于地理信息系统(如服务区划…

微信小程序读取写入NFC文本,以及NFC直接启动小程序指定页面

一、微信小程序读取NFC文本(yyy优译小程序实现),网上有很多通过wx.getNFCAdapter方法来监听读取NFC卡信息,但怎么处理读取的message文本比较难找,现用下面方法来实现,同时还解决几个问题,1、在回调方法中this.setData不更新信息,因为this的指向问题,2、在退出页面时,…

Qt中应用程序框架的体系说明 及应用程序类QApplication类深度解析与应用分析

作为Qt开发者,我们肯定经常见到过QApplication类,有时候可能你看到了都没注意,也没太关心这个类做什么用。那你只需随便建个窗体程序的工程,在自动生成的工程文件main.cpp中就能看到,像这样: #include &qu…

C++里面四种强制类型转换

static_cast, const_cast, reinterpret_cast, dynamic_cast static_cast:用于各种隐式转换,比如void*转ptr* const_cast: 只能应用于指针引用,用来移除变量的const或volatile限定符;不要妄图去修改const,const_cast转…

GD32F450 使用

GB32F450使用 1. 相关知识2. 烧写程序3. SPI3.1 spi基础3.2 spi代码 4. 串口4.1 串口引脚4.2 串口通信代码 问题记录1. 修改晶振频率 注意:GD32F450 总共有三种封装形式,本文所述的相关代码和知识,均为 GD32F450IX 系列。 1. 相关知识 参数配…

Python毕业设计选题:基于协同过滤算法的儿童图书推荐系统_django

开发语言:Python框架:djangoPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 管理员登录 管理员功能界面 用户管理 图书分类管理 儿童图书管理 热销图书管理 公告…