小编Ped*_*dru的帖子

PyQt4 @pyqtSlot:kwarg的结果是什么?

通过阅读本文,出现了两个问题:

它说

有时需要将Python方法明确标记为Qt槽

虽然我总是使用@pyqtSlot装饰器,因为它说:

将信号连接到装饰的Python方法还具有减少内存使用量的优势,并且速度稍快

我问自己:哪些具体案例是必要的?并且:不使用@pyqtSlot装饰器有什么好处吗?

2.结果关键字参数,它的目的是什么?

@pyqtSlot(int, result=int)
def foo(self, arg1):
    """ C++: int foo(int) """
Run Code Online (Sandbox Code Playgroud)

它看起来像返回值的类型,但AFAIK在发出信号时无法检索返回值.

关于那个的任何想法?

python pyqt signals-slots pyqt4

7
推荐指数
1
解决办法
3010
查看次数

PyQt5 错误“PyCapsule_GetPointer 调用的名称不正确”

我刚刚在 OpenSUSE 飞跃上使用 python 3.6.3 在 pyenv virtualenv 中构建了 PyQt5,构建进行得很顺利,但是当我导入时

>>> from PyQt5 import QtCore
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: PyCapsule_GetPointer called with incorrect name
Run Code Online (Sandbox Code Playgroud)

我可以导入PyQt5,但是我不能使用它下面的模块

>>> import PyQt5
>>> PyQt5.QtCore
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'PyQt5' has no attribute 'QtCore'
Run Code Online (Sandbox Code Playgroud)

我在这里读到原因可能是系统上的另一个 sip,例如 PyQt4 安装,我尝试从包管理器中卸载 PyQt4,但没有帮助。

我不知道该怎么办,有什么想法吗?

如果我安装 python3-qt5 包并使用系统 python 它工作

编辑:

我在 OpenSUSE Leap 15 上的另一台机器上使用 PyQt4 遇到了同样的问题,解决方案是配置 sip:

python configure.py …
Run Code Online (Sandbox Code Playgroud)

linux python-3.x python-sip pyqt5

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

linux ×1

pyqt ×1

pyqt4 ×1

pyqt5 ×1

python ×1

python-3.x ×1

python-sip ×1

signals-slots ×1