似乎无法在一个简单的PyQt程序中修复PyCharm警告

时间:2017-04-05 17:36:27

标签: pycharm pyqt4

以下程序(我的真实代码的摘录)

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中触发以下三个警告(例如,当运行Code/Inspect Code...时与QMessageBox.warning调用相关

  •   

    使用不同类的实例按类调用方法;   传递PyQt4.QtGui.QPushButton.QPushButton而不是   PyQt4.QtGui.QMessageBox.QMessageBox。这是故意的吗?

  •   

    调用参数不正确;参数'QString_1'未填充

  •   

    类型检查器;预期类型'QMessageBox',改为'QPushButton'

和一个与PyQt connect电话相关的警告

  •   

    在'function'中找不到引用'connect'

我知道如何解决/避免这些警告吗?

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。您正在向函数传递QPushButton,在您的情况下为“ w”。该函数需要一个QMessageBox。因此,只需像这样传递它即可:

let mainStoryboardIpad : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
                let yourView = mainStoryboardIpad.instantiateViewController(withIdentifier: "yourView") as! NewnoteViewController

                let navi = self.getVisibleViewController(self.window!.rootViewController) as! UINavigationController
               
                navi.pushViewController(yourView, animated: true)