Tamam, yani hemen hemen her öğretici/anlaşılabilir yazılmış-in-insan-dil-dokümantasyon PyQt4 içindir. Ancak, PyQt5'in tüm 'bağlantı düğmesinin bir yuvaya nasıl çalıştığı' değişti ve hala bunu nasıl yapacağımı anlayamıyorum. PyQt5: QPushButton'unu yuvaya nasıl bağlarım?
Ben QtDesigner hızlı bir GUI yaptım ve bir QPushButton ve bir etiket var. Düğmeyi tıkladığımda, etiket üzerindeki metnin değişmesini istiyorum. C++ içinde QtDesigner'da, ikisini birleştirmek kolaydır. Ama hepsini python'da yazmalıyım.Ben dosyayı .py için pyuic5 ile .ui dosyayı dönüştürmek. Yöntemin sonunda, daha sonra
self.testButton = QtWidgets.QPushButton(self.centralWidget)
self.testButton.setObjectName("newGame")
şöyle Orada, Ui_MainWindow sınıfında, ben setupUI yöntemini görebilirsiniz, yani
QtCore.QMetaObject.connectSlotsByName(MainWindow)
dürüst olmak gerekirse, diyoruz ama, self.button başlatır Ne yaptığını ve nereye bağlandığını anlayamıyorum. QMainWindow devralmasını Ana sınıfında
, ben bir sonraki yöntem
@pyqtSlot(name='change')
def change_text(self):
self.ui.testLabel.setText("Button Clicked!")
yazma Ve ben o yuvaya düğme sinyalini bağlamak anlamaya olamaz. Pyqt4'te, button.clicked.connect (self.change_text) ile manuel olarak kurabilirdim, ancak öğrendiğim gibi, PyQt5 bu basit kurulumu kaldırmış ve atmıştır.
, herkes bu konuda bana yardım eder misiniz?
> sana "PyQt5 işleri bütün 'bir yuvaya için düğmeye bağlamak' nasıl değiştiğini" Bu fikre nereden biliyorum, ama yok tamamen ve tamamen yanlıştır. Buradan aldım: http://pyqt.sourceforge.net/Docs/PyQt5/pyqt4_differences.html Paragrafa bakın: 'Eski stil sinyalleri ve yuvaları'. "QObject.connect() pyqt5'te uygulanmadı", evet. bunu çalıştırmayı denediğinizde Ayrıca, ben olsun, böyle bir şey çalıştırmak için olsun! "AttributeError: QPushButton nesne yok niteliği bağlamak etti" :( –
Bekle ben yanlış ne yaptığını bulduk!Kendimi bu bağlantıya (pyqt4_differences) ve önerinin kod önerisinde 'tıklanma' göstermediğine işaret ediyordum, bu da bana bunu yapmanın bir yolu olmadığına inanmamı sağladı! Kötüyüm, hep kötüyüm, cevapladığın için teşekkürler, yanılmışım :( –