pycharm 下 pyqt5 designer 无法使用connect ,native Qt signal is not callable,PyQt信号connect连接槽方法时报:native

主要是遇到了3个问题

背景,按照网上的教程配置了pycharm下pyqt5相关的东西,如愿做出了界面文件,并生成了py文件,有个小插曲,就是使用pyuic生成的时候有时候会提示找不到ui文件,主要是pyuic设置问题,问题如下:

图片来源:https://blog.csdn.net/qq_40016971/article/details/106816818?utm_medium=distribute.pc_relevant.none-task-blog-title-6&spm=1001.2101.3001.4242

若有侵权请及时联系我,谢谢

image-20200617182005652image-20200617182932333

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

Pycharm对于PyQt5的语法检测总是误测connect函数找不到,如何修改?

import等内容一切正常,实际运行也不会出错,只有在connect上一直误报,是否可以调整下pycharm的设置来消除误报?

 

网友好回答

k1mlka

riddim or die

4 人赞同了该回答

推荐安装 PyQt5-stubs 可以解决许多 pycharm 的 pyqt5 智能检测问题。

`pip install PyQt5-stubs`


2020 年了,jb似乎都还没修复这些几年前就有的问题。

https://youtrack.jetbrains.com/issue/PY-24183?_ga=2.170594915.237989288.1580259506-426900699.1579714146

回答正解,可见pycharm神器也有问题,使用PyQt5-stubs 就好了,至于为什么还没能来得及看

2,connect使用方法问题

首先可以参考以下链接

https://blog.csdn.net/shankezh/article/details/52702573?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.compare&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.compare

https://www.jianshu.com/p/6a50f2a8d096

https://blog.csdn.net/s_daqing/article/details/104824556?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.compare&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.compare

 

最主要的原因如下

https://www.codenong.com/17578428/

关于用户界面:PyQt5信号和插槽“ QObject没有属性”错误

PyQt5 Signals and Slots 'QObject has no attribute' error

我一直在尝试找到一种从main外部的Python线程更新GUI线程的方法。 sourceforge上的PyQt5文档提供了有关如何执行此操作的良好说明。 但是我仍然无法正常工作。

有没有很好的方法来解释交互式会话的以下输出? 难道没有一种方法可以在这些对象上调用emit方法吗?

1
2
3
4
5
6
7

>>> from PyQt5.QtCore import QObject, pyqtSignal
>>> obj = QObject()
>>> sig = pyqtSignal()
>>> obj.emit(sig)
Traceback (most recent call last):
  File"<stdin>", line 1, in <module>
AttributeError: 'QObject' object has no attribute 'emit'

1
2
3
4

>>> obj.sig.emit()
Traceback (most recent call last):
  File"<stdin>", line 1, in <module>
AttributeError: 'QObject' object has no attribute 'sig'

1
2
3
4
5

>>> obj.sig = pyqtSignal()
>>> obj.sig.emit()
Traceback (most recent call last):
  File"<stdin>", line 1, in <module>
AttributeError: 'PyQt5.QtCore.pyqtSignal' object has no attribute 'emit'

 相关讨论

 


以下单词和代码在PyQt5文档中。

新信号只能在QObject的子类中定义。它们必须是类定义的一部分,并且在定义了类之后不能动态添加为类属性。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

from PyQt5.QtCore import QObject, pyqtSignal

class Foo(QObject):

    # Define a new signal called 'trigger' that has no arguments.
    trigger = pyqtSignal()

    def connect_and_emit_trigger(self):
        # Connect the trigger signal to a slot.
        self.trigger.connect(self.handle_trigger)

        # Emit the signal.
        self.trigger.emit()

    def handle_trigger(self):
        # Show that the slot has been called.

        print"trigger signal received"

我后来试了几次,就好了

到此结束

 

 

 

 

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 关于在PyCharm中安装和使用PyQt5,可以按照以下步骤进行操作: 1. 下载并安装PyQt5包,可以通过pip在命令行中使用以下语句进行安装: ```python pip install PyQt5 ``` 2. 打开PyCharm,在项目中导入PyQt5包。 3. 创建PyQt5应用程序,比如: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget app = QApplication(sys.argv) # 创建一个窗口 widget = QWidget() widget.setWindowTitle('PyQt5') widget.show() sys.exit(app.exec_()) ``` 4. 运行代码,在PyCharm中会弹出一个窗口,表示PyQt5应用程序已经启动成功。 希望这些步骤能够帮助你安装和使用PyQt5。 ### 回答2: PyCharm是一款功能强大的Python集成开发环境(IDE),拥有丰富的功能和工具,使我们能够更加高效地编写Python代码。在PyCharm使用PyQt5进行Python GUI开发也是很方便的。 如果你想在PyCharm使用PyQt5进行Python GUI开发,需要进行以下步骤: 1. 安装PyQt5PyCharm使用PyQt5需要先安装它。可以在命令行中使用pip安装,命令如下: ``` pip install PyQt5 ``` 2. 创建PyQt5项目 在PyCharm中,我们可以使用“New Project”或“New Module”来创建一个新的PyQt5项目,并选择需要的解释器。在PyCharm中创建一个PyQt5项目与创建其他Python项目的方法相同。 3. 编写PyQt5代码 在PyCharm中,我们可以在类似的Python文件中编写PyQt5代码。PyQt5的API在PyCharm中有很好的代码提示和自动补全功能,这样我们就可以更加高效地编写PyQt5代码。 以下是一个基本的PyQt5窗体应用程序: ``` import sys from PyQt5.QtWidgets import QApplication, QWidget if __name__ == '__main__': app = QApplication(sys.argv) widget = QWidget() widget.resize(250, 150) widget.setWindowTitle('PyQt5') widget.show() sys.exit(app.exec_()) ``` 在此应用程序中,我们使用PyQt5创建了一个窗口,并设置了其大小和标题。最后,我们使用app.exec_()方法运行我们的应用程序。 4. 运行PyQt5应用程序 在PyCharm中,我们可以直接单击“Run”按钮运行我们的PyQt5应用程序。此外,我们还可以在命令行中输入以下命令运行我们的PyQt5应用程序: ``` python <file_name>.py ``` 以上就是在PyCharm使用PyQt5进行Python GUI开发的基本步骤。当然,我们还可以使用其他的PyQt5工具和插件来丰富我们的开发体验,例如Qt DesignerQt Creator。无论如何,PyCharm是一个非常强大的IDE,为Python GUI开发提供了强大的支持。 ### 回答3: PyCharm是一款适用于Python开发者的IDE集成开发环境,它提供了非常方便的编码和调试功能。同时,PyQt5是一种开发图形化用户界面的Python框架。在PyCharm中,如果想要使用PyQt5,我们需要进行安装和配置,下面是详细的步骤: 1. 安装PyQt5 打开PyCharm IDE,进入到“File”->“Settings”->“Project Interpreter”界面,然后选择对应的Python版本。接着在下面的搜索框中输入“pyqt5”,通过搜索到的内容来安装包。点击右下角的“Install Package”按钮即可完成安装。 2. 配置PyQt5 安装完成后,我们需要配置PyQt5。在PyCharm的菜单栏中,选择“Run”->“Edit Configurations”->“Environment variables”,然后添加如下两个环境变量: QT_PLUGIN_PATH = /usr/lib/x86_64-linux-gnu/qt5/plugins/ QT_QPA_PLATFORM_PLUGIN_PATH = /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/ 注:以上路径示例是在Linux下的路径,对于不同的操作系统,路径可能会有所不同,需要根据实际情况进行指定。 3. 使用PyQt5 安装和配置完毕后,我们就可以在PyCharm使用PyQt5来开发图形化用户界面了。我们需要导入PyQt5的模块,例如: from PyQt5.QtWidgets import QApplication, QWidget 可以通过创建一个QWidgeet子类来实现用户界面的布局,例如: class MyWidget(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 300, 220) self.setWindowTitle('Hello PyQT5') self.show() 我们还可以通过信号机制来实现用户界面的交互,例如: btn.clicked.connect(self.btnClicked) def btnClicked(self): QMessageBox.information(self, "Message", "Button clicked.") 通过以上的步骤,我们就可以在PyCharm中安装和使用PyQt5来开发图形化的Python应用程序了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值