pyside2 各种坑

pyside2 各种坑

ui转py的坑

没想到我在这个坑里呆了两三天,而且目前也没找到行之有效的简便方法。

问题是这样的:
首先用qt creator设计了一个ui,然后要将这个ui转换成py文件,然后可怕的事情来了。
网上查了一下,说是用命令行:

pyside2-uic mainwindow.ui > ui_mainwindow.py

试了一下,无效
报错1可能是环境变量的问题。这个问题就算我解决了,学生也不会设置啊。
换个方法
听说Qt Designer里直接就可以生成代码,于是舍弃qtcreator(其实是没找到转换python代码的功能)到pyside2文件夹里找到了Qt Designer,选择 view python code…,结果成功了!哇,好棒!解决问题了!然后周五回家,等周一回到单位再来一次的时候,出问题了!靠!
报错2
这是什么鬼!uic.exe文件是在designer.exe同一个目录下啊。手动添加一个bin文件夹,然后放进去看能不能骗过它。结果果然没那么简单,哈哈
报错3
到这里我基本上就想放弃治疗了。但是又有点不甘心,又去网上搜啊搜,不知道是我的问题太少见还是pyside2用的人少,这个问题很少有人问。
后来看到有一个方法,就是这篇文章
WoHowLearn的博客

要先安装qtpy,然后修改里面的一个文件,然后在命令行用
pyuic5 -o xx.py xx.ui 搞定了
可问题是这个方法太复杂,让孩子们做成功的概率太低了。

目前还在寻找更简单的方法。

补充:在b站上看到白月黑羽老师的pyside2视频里有讲解动态加载ui的方法,待我去学习一下。
白月黑羽的pyside2视频教程


更新一下:目前感觉白月黑羽老师的动态加载ui方法最简单,只需要四句,然后控件前加个ui.就好了
例子如下:
示例

import sys
from PySide2.QtWidgets import *
from ui_mainwindow import Ui_Charts


class MyCharts(QMainWindow, Ui_Charts):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.show()

        self.pbt_data.clicked.connect(self.select_file)
        
    def select_file(self):
        self.data_file, _ = QFileDialog.getOpenFileName(
            caption='选择数据文件', filter='(*.json)')
        self.lb_info.setText(self.data_file)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MyCharts()
    sys.exit(app.exec_())

DLL load failed

不知道是不是我太作了。笔记本上的pyside2用的好好的,因为designer不能显示py代码,我就把pyside2卸载了重装。这下好了,重装以后import里面模块的时候就出现DLL load failed
再次重装pyside2,无效
重装海龟编辑器,无效
打算研究一下这篇文章,如果还是不行就卸载python和anaconda3
Windows下Python中常见的几种DLL load failed问题的原因以及解决方案

更新:应该是海龟编辑器没有清理干净,删除之后在用户目录下还有一个.wood,将其删除后重装海龟编辑器,再安装pyside2库,解决问题。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值