吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1137|回复: 6
收起左侧

[学习记录] 记录+总结:学习PySide6 GUI开发及打包

  [复制链接]
hkq666 发表于 2023-8-5 18:10
本帖最后由 hkq666 于 2023-8-5 18:15 编辑

写在前面

业余学习Python,给自己写几个小工具用,最近学了点 PySide6和GUI打包,记录一下,也希望能帮到遇到类似问题的小伙伴

1 文件组织

MyGUI/
-- Res/  # 非代码文件
-- scr/  # 代码文件
-- scr/ main.py  # 入口文件
-- scr/ script/ CallMainPage.py, CallSecondPage.py  # 页面逻辑代码 # CallMainPage为主页面
-- scr/ script/ ui/ MainPage.py, SecondPage.py # 页面文件

main.py

import sys
from PySide6.QtWidgets import *
from script.CallMainPage import MainPage

def main():
    app = QApplication(sys.argv)
    mainwindow=MainPage()
    mainwindow.show()
    app.exec()

if __name__ == "__main__":
    main()

2 GUI页面组织

2.1 GUI需求——TabWidget

初步想以后再写几个小工具,把这些工具都整合到一个GUI中,选择了TabWidget容器,每个工具一个页面,也是一个TabWidget中的Tab页面

2.2 TabWidget添加Tab页面

  1. 主页面:创建一个Widget窗口,添加一个TabWidget容器,仅保留一个Tab页面
  2. 其他Tab页面:创建一个Widget窗口即可
# 此文件为主页面逻辑页面
# 省略其他不重要代码
# 仅作示意

from CallSecondPage import SecondPage
# 导入其他页面文件
self.tabwidget.addTab(SecondPage(),'第二页')
# 添加页面

2.3 动态添加Tab页面

后续添加了新功能只需将相应的类导入,再addTab即可,但这样做每次都需要更改相应的py文件,未免太过麻烦,想了个懒人方法,加一个tab.txt文件作为配置文件,将所有想添加的页面的文件名都写在tab.txt中,一行一个,再在主页面逻辑代码内将其读入,如此则后面都不用更改其他代码了,只需将不同页面的代码放入相应文件夹,再在tab.txt中加一行就行,而要是哪个功能不想要了,懒点也只需在tab.txt中删了就行,个人小工具也不需要考虑性能啊什么的,方便最重要
思路有了,主要的代码如下

exec("from script.Call" + tabfile_name + " import " + tabfile_name)
exec("self.tabWidget.addTab(" + tabfile_name + "(), " + "'" + tabname + "')")
# 若 tabfile_name='SecondPage'  tabname='第二页',则上述代码执行后为
# from script.CallSecondPage import SecondPage
# self.tabWidget.addTab( SecondPage(), '第二页')
# 如此则可在 tab.txt中写入各种东西,不用改动其他代码

3 GUI打包

GUI打包参考怎么样打包 pyqt 应用才是最佳方案?或者说 pyqt 怎样的发布方式最优? - 韦易笑的回答 - 知乎
https://www.zhihu.com/question/48776632/answer/2336654649

以上,最近的学习思路,仅做记录。

免费评分

参与人数 1吾爱币 +1 收起 理由
b12312312 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

java420 发表于 2023-8-5 18:43
楼主优秀啊
平淡最真 发表于 2023-8-5 19:26
打开那个打包的链接看了一下,麻烦的要死。
我的评价是:不如pyinstaller
Imagawa-451 发表于 2023-8-5 20:45
sjr8791 发表于 2023-8-5 22:46

感谢分享!
acs 发表于 2023-8-6 02:14
总结到位
头像被屏蔽
86618513 发表于 2023-8-6 09:20
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-23 19:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表