我对使用PyQt非常新,我试图了解信号插槽机制。不幸的是,PyQt的文档经常会导致Qt页面的语法和参数几乎不相同。我想在下面的简单例子中找出2件事。 1)QAction :: triggered()是一个void函数,那么我们如何在理论上由trigger()方法返回的某种对象上调用QAction :: triggered.connect()。PyQt5信号和插槽简单代码说明
2)什么是“qApp”。我不知道QApp是什么类型,或者它是由PyQt创建的,但似乎对我来说无处不在,只能在方便的时候使用。
我误解的一部分可能来自这样一个事实,即Qt/PyQt中函数的C++和python实现不相同,但我们希望能够理解没有任何python文档的情况。
import sys
from PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplication
from PyQt5.QtGui import QIcon
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
exitAction = QAction(QIcon('exit24.png'), 'Exit', self)
exitAction.setShortcut('Ctrl+Q')
exitAction.triggered.connect(qApp.quit)
self.toolbar = self.addToolBar('Exit')
self.toolbar.addAction(exitAction)
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('Toolbar')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())