Ohjelmassa on QPushButton nimeltään button0. Painonapissa on teksti '0'. Painonappia painamalla siirrytään moduliin on_click jossa oleva tulostuskäsky toimii. Rivi
button0.setText("2")
on kommentoitu pois: jos se otetaan käyttöön, painonapin klikkaus kaataa ikkunan. Mikäs tässä mättää?
import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton class App(QWidget): def __init__(self): super().__init__() self.title = 'try' self.initUI() def initUI(self): self.setWindowTitle(self.title) self.setGeometry(100, 100, 500, 500) button0 = QPushButton('0', self) button0.setGeometry(50,100,40,40) button0.clicked.connect(self.on_click) self.show() def on_click(self): # button0.setText("2") print('PyQt5 button click') if __name__ == '__main__': app = QApplication(sys.argv) ex = App() sys.exit(app.exec_())
Muuttujaa button0 ei ole kyseisessä funktiossa, kuten näet myös ohjelman kaatumisen yhteydessä tulevasta virheilmoituksesta (eli tulee ”NameError: name 'button0' is not defined”). Sinulla pitäisi koko ohjelmassa olla button0:n tilalla self.button0, jotta se liittyisi kyseiseen App-olioon.
Metabolix kirjoitti:
(27.01.2021 22:27:48): Muuttujaa button0 ei ole kyseisessä funktiossa...
Kiitos paljon!
Aihe on jo aika vanha, joten et voi enää vastata siihen.