Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Python: Pyqt5: painonapin tekstin vaihto

merkkinimi [27.01.2021 20:46:19]

#

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_())

Metabolix [27.01.2021 22:27:48]

#

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.

merkkinimi [27.01.2021 23:13:28]

#

Metabolix kirjoitti:

(27.01.2021 22:27:48): Muuttujaa button0 ei ole kyseisessä funk­ti­os­sa...

Kiitos paljon!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta