【发布时间】:2017-08-31 11:17:59
【问题描述】:
以下程序(我真实代码的摘录)
from PyQt4 import QtGui
import sys
from PyQt4.QtGui import QMessageBox
def main():
app = QtGui.QApplication([])
w = QtGui.QPushButton("Test")
def on_pressed():
print("Pressed")
QMessageBox.warning(w, 'Info', 'Button Pressed')
w.pressed.connect(on_pressed)
w.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
在 PyCharm 中触发以下三个与 QMessageBox.warning 调用相关的警告(例如,在运行 Code/Inspect Code... 时)
使用不同类的实例按类调用方法; 传递 PyQt4.QtGui.QPushButton.QPushButton 而不是 PyQt4.QtGui.QMessageBox.QMessageBox。这是故意的吗?
调用参数不正确;参数'QString_1'未填充
类型检查器;预期类型“QMessageBox”,改为“QPushButton”
还有一个与 PyQt connect 调用相关的警告
在“功能”中找不到引用“连接”
知道如何解决/避免这些警告吗?
【问题讨论】:
-
根据文档:doc.qt.io/archives/qq/qq16-dynamicqobject.html,信号和槽是在编译时声明的,我不知道 PyQt 如何处理这个的细节,但是 PyCharm 不知道这个机制,因此抛出一个警告。在 PyCharm 问题中已经打开了多个关于此的问题:youtrack.jetbrains.com/issue/PY-22908youtrack.jetbrains.com/issue/PY-12498youtrack.jetbrains.com/issue/PY-4120
-
有谁知道这个问题什么时候可以解决?