主要是遇到了3个问题
背景,按照网上的教程配置了pycharm下pyqt5相关的东西,如愿做出了界面文件,并生成了py文件,有个小插曲,就是使用pyuic生成的时候有时候会提示找不到ui文件,主要是pyuic设置问题,问题如下:
若有侵权请及时联系我,谢谢
https://www.codenong.com/cs105457038/
注意在pyuic的配置里,Working directory中 默认是$ProjectFileDir$,这会导致pyuic在工程目录寻找ui文件,但工程目录一般是只python.exe的目录,改为$FileDir$就可以了
言归正传,pyqt使用时connect出错,主要涉及2各原因
1,pycharm环境问题,这个时最大的坑
2,connect使用方法问题
第一个:pycharm的坑,以下参考网友贴,下附连接,如由侵权,请及时告知
https://www.zhihu.com/question/58209570
import等内容一切正常,实际运行也不会出错,只有在connect上一直误报,是否可以调整下pycharm的设置来消除误报?
网友好回答
riddim or die
4 人赞同了该回答
推荐安装 PyQt5-stubs 可以解决许多 pycharm 的 pyqt5 智能检测问题。
`pip install PyQt5-stubs`
2020 年了,jb似乎都还没修复这些几年前就有的问题。
回答正解,可见pycharm神器也有问题,使用PyQt5-stubs 就好了,至于为什么还没能来得及看
2,connect使用方法问题
首先可以参考以下链接
https://www.jianshu.com/p/6a50f2a8d096
最主要的原因如下
https://www.codenong.com/17578428/
我一直在尝试找到一种从main外部的Python线程更新GUI线程的方法。 sourceforge上的PyQt5文档提供了有关如何执行此操作的良好说明。 但是我仍然无法正常工作。
有没有很好的方法来解释交互式会话的以下输出? 难道没有一种方法可以在这些对象上调用emit方法吗?
1 |
>>> from PyQt5.QtCore import QObject, pyqtSignal |
和
1 |
>>> obj.sig.emit() |
和
1 |
>>> obj.sig = pyqtSignal() |
相关讨论
以下单词和代码在PyQt5文档中。
新信号只能在QObject的子类中定义。它们必须是类定义的一部分,并且在定义了类之后不能动态添加为类属性。
1 |
from PyQt5.QtCore import QObject, pyqtSignal |
我后来试了几次,就好了
到此结束