PyQt'yi kullanıyorum ve sinyal yuvası mekanizmasını anlamaya çalışıyorum. Ne yazık ki, PyQt belgeleri genellikle sözdizimi ve parametrelerinin neredeyse aynı olmadığı Qt sayfalarına yol açar. Aşağıdaki basit örnekte 2 şeyi anlamaya çalışıyorum.PyQt5 sinyal ve yuvası basit kod açıklaması
1) QAction :: triggered() bir void işlevidir, bu nedenle QRction :: triggered.connect() yöntemini, triggered() yöntemi ile teorik olarak döndürülen bir nesne türünde nasıl çağırıyoruz.
2) Ve "qApp" nedir. Ne tür qApp olduğunu veya PyQt tarafından oluşturulduğunu bilmiyorum ama bana uygun bir yerde kullanılmak üzere, hiçbir yerde görünmüyor gibi görünüyor.
Yanlış anlaşılmamın bir kısmı, C++ ve python'un Qt/PyQt işlevlerinin aynı olmadığı gerçeğinden kaynaklanıyor, ancak herhangi bir python belgesi olmadan neler olup bittiğini anlamamız bekleniyor.
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_())