Pyqt5 zmiana tekstu w QLabel

0

Witam
Mam problem z zmianą tekstu w QLabel. Pomimo że wywołuję zmianę przez setText(' ') nic się nie dzieje.

Tak wygląda kawałek tego kodu:

Plik1:

class TabLotto(QWidget):

    def __init__(self):
        super().__init__()
        self.interfejs()
    def interfejs(self):

        Layout = QVBoxLayout()
        Layout.addWidget(self.groupbox_bile())
        self.setLayout(Layout)


    def groupbox_bile(self):
        self.b1 = QLabel('b1', self)
        self.b2 = QLabel('b2', self)
.......

Wywołanie zmiany z innego pliku polega na:

def wyniki_update():
    layout = lotto.TabLotto()
    layout.b1.setText('siemka')

Dlaczego to nie działa ?

0

Debugowałeś? Tam w __init__ wszystko ok? Obiekt layout jest w porządku?

2
def groupbox_bile(self):
        self.b1 = QLabel('b1', self)
        self.b2 = QLabel('b2', self)

b1 jest tutaj zdeklarowane i nie wywolujesz tej metody. Najpierw wywolaj metode, zeby ta zmienna stworzyc i powinno zadzialac.

0

Hmm te labelki widać normalnie jak uruchamiam program. Jeszcze trzeba je wywołać ?? Myślałem to wystarcza by pracować z daną labelką.

0

Uruchomiłem debagowanie i powiem tak.
Program najpierw wchodzi do
self.b1 = QLabel('b1', self)
i w oknie jest wypisywane jest 'b1'.
Jak uruchomię inne okno i każe zmienić nazwę. Program znowu wchodzi do
self.b1 = QLabel('b1', self)
a następnie jest wykonywane
layout.b1.setText('siemka')
Ale napis nie jest aktualizowany w oknie.

Zmodyfikowałem też kod do tego:

    def groupbox_bile(self):
        self.b1 = QLabel(self)
        self.b1.setText('b1')

I dalej to samo się dzieje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1