关于Pycharm中pyqt5提示”flag unfilled“以及QPushButton事件绑定connect的问题解决方案
0, 准备
确保你已经安装了python3.7 和pycharm
1,安装
打开你的site-packages中pyqt5的目录:
打开pycharm,随便输入一段代码会发现:
明明代码跑的动,pycharm却无端给个警告,搞人心态
网上的做法大多是安装pyqt5_stubs, pycharm也是这样建议的:
有时候这个有用,可是:
pycharm重新加载后,仍然报错
2,问题根源
就以button.clicked的问题来说:
这是pyqt5下面QtWidgets.pyi的代码片段:
(为什么IDE不能直接读取pyd文件?因为他是由C源文件编译成的)
这是pyqt5_stubs下面QtWidgets.pyi的代码片段:
显然后者是对的。
我猜想可能因为IDE加载这2个文件的顺序问题导致前者覆盖后者
于是解决方案出来了:
3,解决方案
从最新版本的pyqt5_stubs的github上克隆代码
git clone https://github.com/stlehmann/PyQt5-stubs.git
会发现在pyqt5_stubs\pyqt5_stubs下面有很多pyi文件,这是关键!
(不要python setup.py install 安装!)
将这些pyi文件复制
并分别粘贴到site_packages\pyqt5和pyqt5_stubs下面,(保险)
存在则替换
再重启pycharm: