При нажатии на кнопку, не появляется надпись QLabel
Использую PyQt5. Число создаётся и отображается в командной строке, ошибки нет, но надпись не появляется?
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys
from random import randint
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Random num")
self.setGeometry(100, 100, 600, 400)
self.UiComponents()
self.show()
def UiComponents(self):
create_random_num = QPushButton("создание рандомного числа", self)
create_random_num.resize(200, 50)
create_random_num.move (200, 300)
create_random_num.clicked.connect(self.create_random_num_func)
#Функция рандомного числа
num_random = 0
def create_random_num_func(self):
global num_random
num_random = randint(1, 10)
complite_random_num = QLabel(self)
complite_random_num.setText("Число создано")
complite_random_num.resize(200, 50)
print(num_random)
self.update()
app = QApplication(sys.argv)
window = Window()
sys.exit(app.exec())```
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Вы можете добавить complite_random_num.show() в метод create_random_num_func(self) и
добавить num_random в complite_random_num.setText("Число создано", num_random).
А правильно будет так, спросите если что-то не понятно.
import sys
from random import randint
from PyQt5.Qt import *
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.centralwidget = QWidget()
self.centralwidget.setObjectName("centralwidget")
self.setCentralWidget(self.centralwidget)
self.uiComponents()
layout = QVBoxLayout(self.centralwidget)
layout.addWidget(self.label, alignment = Qt.AlignCenter)
layout.addWidget(self.pushButton, alignment = Qt.AlignHCenter)
def uiComponents(self):
self.pushButton = QPushButton("Создать рандомное число", self)
self.pushButton.clicked.connect(self.create_random_num_func)
self.label = QLabel()
def create_random_num_func(self):
num_random = randint(1, 10)
self.label.setText(f"Число создано: {num_random}")
StyleSheet = '''
#centralwidget {
background-color: #18465d;
}
QLabel {
color: rgb(255, 255, 255);
font: 27px;
}
'''
if __name__ == "__main__":
app = QApplication(sys.argv)
app.setStyleSheet(StyleSheet)
window = Window()
window.setWindowTitle("Random num")
window.resize(600, 400)
window.show()
sys.exit(app.exec())
