ibr_98
@ibr_98

Почему кнопка не срабатывает?

Всем привет!
есть код:
import sys
from PyQt5.QtWidgets import*
from PyQt5.QtGui import QFont
from PyQt5.QtCore import QTimer

app = QApplication(sys.argv)

#СОДАНИЕ ОКНА
root = QWidget()
root.resize(450, 250)
root.move(500, 300)
root.setWindowTitle('simple')

#ФУНКЦИЯ С ЛЭЙБЛОМ
def lab():
	newLabel = QLabel(root)
	newLabel.setText('Hellow Wrold')
	newLabel.move(10, 50)

#КНОПКА
button = QPushButton('Button', root)
button.move(10, 10)
#КЛИК НА КНОПКУ, ПОСЛЕ КОТОРОЙ БУДЕТ ВЫЗЫВАТЬСЯ ФУНКЦИЯ С ЛЭЙБЛОМ
button.clicked.connect(lab)


root.show()
sys.exit(app.exec())


но кнопка не работает, а главное если в функции lab прописать print('Hellow World') и вызвать код через консоль - то кнопка работает
  • Вопрос задан
  • 240 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Sergey6661313
Ну про глобальную - это я погорячился.... потому что вы её уже сделали дочкой root при создании. (и этого типо хватает)

Как временное решение могу лишь предложить вызывать show() после создания и указания координат.
newLabel.show() - это заставит его в любом случае появиться.... но я не знаю является ли это "совсем точно "правильным решением...
Ответ написан
@zaswed
можно скрыть и в методе сделать видимой
import sys
from PyQt5 import QtWidgets

class Widget(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.resize(100, 100)
        self.button = QtWidgets.QPushButton('Button', self)
        self.button.clicked.connect(self.visible_lab)
        self.newLabel = QtWidgets.QLabel(self)
        self.newLabel.setText('Hellow Wrold')
        self.newLabel.move(10, 50)
        self.newLabel.setVisible(False)


    def visible_lab(self):
        self.newLabel.setVisible(True)


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    main = Widget()
    main.show()
    sys.exit(app.exec_())
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы