Как добавить виджеты в QLayout указав их количество?
Как должна работать программа:
в диалоговом окне нужно указать количество вопросов и после нажатия кнопки "Далее", открывается новое окно где будет уже создано нужное количество виджетов lineEdit и нумерация (QLabel).
P.S. Нужно чтобы в одном слое окна было не более 16 вопросов.
newTest.py
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_Newtest(object):
def setupUi(self, Newtest):
Newtest.setObjectName("Newtest")
Newtest.resize(842, 545)
self.centralwidget = QtWidgets.QWidget(Newtest)
self.centralwidget.setObjectName("centralwidget")
self.stackedWidget = QtWidgets.QStackedWidget(self.centralwidget)
self.stackedWidget.setGeometry(QtCore.QRect(0, 0, 841, 541))
self.stackedWidget.setObjectName("stackedWidget")
self.page_3 = QtWidgets.QWidget()
self.page_3.setObjectName("page_3")
self.lineQuestion_3 = QtWidgets.QLineEdit(self.page_3)
self.lineQuestion_3.setGeometry(QtCore.QRect(50, 180, 351, 31))
self.lineQuestion_3.setStyleSheet("font: 11pt \"Montserrat\";\n"
"\n"
"")
self.lineQuestion_3.setObjectName("lineQuestion_3")
self.btnBack = QtWidgets.QPushButton(self.page_3)
self.btnBack.setGeometry(QtCore.QRect(600, 470, 101, 31))
self.btnBack.setStyleSheet("QPushButton {\n"
" background-color: rgb(255, 255, 255);\n"
" font: 63 10pt \"Montserrat SemiBold\"; \n"
" border-radius: 5;\n"
" \n"
" color: rgb(0, 0, 0);\n"
"}\n"
"QPushButton:pressed {\n"
" \n"
" background-color: rgb(181, 181, 181);\n"
"}")
self.btnBack.setObjectName("btnBack")
self.count_2 = QtWidgets.QLabel(self.page_3)
self.count_2.setGeometry(QtCore.QRect(20, 130, 16, 31))
self.count_2.setStyleSheet("font: 81 14pt \"Montserrat ExtraBold\";")
self.count_2.setObjectName("count_2")
self.color = QtWidgets.QLabel(self.page_3)
self.color.setGeometry(QtCore.QRect(0, 0, 841, 51))
self.color.setStyleSheet("font: 81 14pt \"Montserrat ExtraBold\";\n"
"color: rgb(255, 255, 255);\n"
"")
self.color.setText("")
self.color.setPixmap(QtGui.QPixmap("color.png"))
self.color.setObjectName("color")
self.lineQuestion_4 = QtWidgets.QLineEdit(self.page_3)
self.lineQuestion_4.setGeometry(QtCore.QRect(50, 230, 351, 31))
self.lineQuestion_4.setStyleSheet("font: 11pt \"Montserrat\";\n"
"\n"
"")
self.lineQuestion_4.setObjectName("lineQuestion_4")
self.count_5 = QtWidgets.QLabel(self.page_3)
self.count_5.setGeometry(QtCore.QRect(20, 280, 16, 31))
self.count_5.setStyleSheet("font: 81 14pt \"Montserrat ExtraBold\";")
self.count_5.setObjectName("count_5")
self.count_10 = QtWidgets.QLabel(self.page_3)
self.count_10.setGeometry(QtCore.QRect(420, 80, 31, 31))
self.count_10.setStyleSheet("font: 81 14pt \"Montserrat ExtraBold\";")
self.count_10.setObjectName("count_10")
self.lineQuestion_11 = QtWidgets.QLineEdit(self.page_3)
self.lineQuestion_11.setGeometry(QtCore.QRect(460, 130, 351, 31))
self.lineQuestion_11.setStyleSheet("font: 11pt \"Montserrat\";\n"
"\n"
"")
self.lineQuestion_11.setObjectName("lineQuestion_11")
self.lineQuestion_14 = QtWidgets.QLineEdit(self.page_3)
self.lineQuestion_14.setGeometry(QtCore.QRect(460, 280, 351, 31))
self.lineQuestion_14.setStyleSheet("font: 11pt \"Montserrat\";\n"
"\n"
"")
self.lineQuestion_14.setObjectName("lineQuestion_14")
self.lineQuestion_10 = QtWidgets.QLineEdit(self.page_3)
self.lineQuestion_10.setGeometry(QtCore.QRect(460, 80, 351, 31))
self.lineQuestion_10.setStyleSheet("font: 11pt \"Montserrat\";\n"
"\n"
"")
self.lineQuestion_10.setObjectName("lineQuestion_10")
self.count_7 = QtWidgets.QLabel(self.page_3)
self.count_7.setGeometry(QtCore.QRect(20, 380, 16, 31))
self.count_7.setStyleSheet("font: 81 14pt \"Montserrat ExtraBold\";")
self.count_7.setObjectName("count_7")
self.lineQuestion_8 = QtWidgets.QLineEdit(self.page_3)
self.lineQuestion_8.setGeometry(QtCore.QRect(50, 430, 351, 31))
self.lineQuestion_8.setStyleSheet("font: 11pt \"Montserrat\";\n"
"\n"
"")
self.lineQuestion_8.setObjectName("lineQuestion_8")
self.count_3 = QtWidgets.QLabel(self.page_3)
self.count_3.setGeometry(QtCore.QRect(20, 180, 16, 31))
self.count_3.setStyleSheet("font: 81 14pt \"Montserrat ExtraBold\";")
self.count_3.setObjectName("count_3")
self.count_8 = QtWidgets.QLabel(self.page_3)
self.count_8.setGeometry(QtCore.QRect(20, 430, 21, 31))
self.count_8.setStyleSheet("font: 81 14pt \"Montserrat ExtraBold\";")
self.count_8.setObjectName("count_8")
self.lineQuestion_9 = QtWidgets.QLineEdit(self.page_3)
self.lineQuestion_9.setGeometry(QtCore.QRect(50, 480, 351, 31))
self.lineQuestion_9.setStyleSheet("font: 11pt \"Montserrat\";\n"
"\n"
"")
self.lineQuestion_9.setObjectName("lineQuestion_9")
self.count_9 = QtWidgets.QLabel(self.page_3)
self.count_9.setGeometry(QtCore.QRect(20, 480, 21, 31))
self.count_9.setStyleSheet("font: 81 14pt \"Montserrat ExtraBold\";")
self.count_9.setObjectName("count_9")
self.count = QtWidgets.QLabel(self.page_3)
self.count.setGeometry(QtCore.QRect(20, 80, 16, 31))
self.count.setStyleSheet("font: 81 14pt \"Montserrat ExtraBold\";")
self.count.setObjectName("count")
self.lineQuestion_16 = QtWidgets.QLineEdit(self.page_3)
self.lineQuestion_16.setGeometry(QtCore.QRect(460, 380, 351, 31))
self.lineQuestion_16.setStyleSheet("font: 11pt \"Montserrat\";\n"
"\n"
"")
self.lineQuestion_16.setObjectName("lineQuestion_16")
self.count_4 = QtWidgets.QLabel(self.page_3)
self.count_4.setGeometry(QtCore.QRect(20, 230, 16, 31))
self.count_4.setStyleSheet("font: 81 14pt \"Montserrat ExtraBold\";")
self.count_4.setObjectName("count_4")
self.lineQuestion_5 = QtWidgets.QLineEdit(self.page_3)
self.lineQuestion_5.setGeometry(QtCore.QRect(50, 280, 351, 31))
self.lineQuestion_5.setStyleSheet("font: 11pt \"Montserrat\";\n"
"\n"
"")
self.lineQuestion_5.setObjectName("lineQuestion_5")
self.lineQuestion_2 = QtWidgets.QLineEdit(self.page_3)
self.lineQuestion_2.setGeometry(QtCore.QRect(50, 130, 351, 31))
self.lineQuestion_2.setStyleSheet("font: 11pt \"Montserrat\";\n"
"\n"
"")
self.lineQuestion_2.setObjectName("lineQuestion_2")
self.lineQuestion_7 = QtWidgets.QLineEdit(self.page_3)
self.lineQuestion_7.setGeometry(QtCore.QRect(50, 380, 351, 31))
self.lineQuestion_7.setStyleSheet("font: 11pt \"Montserrat\";\n"
"\n"
"")
self.lineQuestion_7.setObjectName("lineQuestion_7")
self.gridLayoutWidget_4 = QtWidgets.QWidget(self.page_3)
self.gridLayoutWidget_4.setGeometry(QtCore.QRect(0, 0, 841, 51))
self.gridLayoutWidget_4.setObjectName("gridLayoutWidget_4")
self.gridLayout_5 = QtWidgets.QGridLayout(self.gridLayoutWidget_4)
self.gridLayout_5.setContentsMargins(0, 0, 0, 0)
self.gridLayout_5.setObjectName("gridLayout_5")
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
self.gridLayout_5.addItem(spacerItem, 0, 3, 1, 1)
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
self.gridLayout_5.addItem(spacerItem1, 0, 0, 1, 1)
self.Title_6 = QtWidgets.QLabel(self.gridLayoutWidget_4)
self.Title_6.setStyleSheet("font: 81 16pt \"Montserrat ExtraBold\";\n"
"color: rgb(255, 255, 255);\n"
"")
self.Title_6.setObjectName("Title_6")
self.gridLayout_5.addWidget(self.Title_6, 0, 2, 1, 1)
self.count_13 = QtWidgets.QLabel(self.page_3)
self.count_13.setGeometry(QtCore.QRect(420, 230, 31, 31))
self.count_13.setStyleSheet("font: 81 14pt \"Montserrat ExtraBold\";")
self.count_13.setObjectName("count_13")
self.count_14 = QtWidgets.QLabel(self.page_3)
self.count_14.setGeometry(QtCore.QRect(420, 280, 31, 31))
self.count_14.setStyleSheet("font: 81 14pt \"Montserrat ExtraBold\";")
self.count_14.setObjectName("count_14")
self.lineQuestion_13 = QtWidgets.QLineEdit(self.page_3)
self.lineQuestion_13.setGeometry(QtCore.QRect(460, 230, 351, 31))
self.lineQuestion_13.setStyleSheet("font: 11pt \"Montserrat\";\n"
"\n"
"")
self.lineQuestion_13.setObjectName("lineQuestion_13")
self.lineQuestion_15 = QtWidgets.QLineEdit(self.page_3)
self.lineQuestion_15.setGeometry(QtCore.QRect(460, 330, 351, 31))
self.lineQuestion_15.setStyleSheet("font: 11pt \"Montserrat\";\n"
"\n"
"")
self.lineQuestion_15.setObjectName("lineQuestion_15")
self.lineQuestion = QtWidgets.QLineEdit(self.page_3)
self.lineQuestion.setGeometry(QtCore.QRect(50, 80, 351, 31))
self.lineQuestion.setStyleSheet("font: 11pt \"Montserrat\";\n"
"\n"
"")
self.lineQuestion.setObjectName("lineQuestion")
self.btnNext_2 = QtWidgets.QPushButton(self.page_3)
self.btnNext_2.setGeometry(QtCore.QRect(710, 470, 101, 31))
self.btnNext_2.setStyleSheet("QPushButton {\n"
" background-color: rgb(6, 135, 154);\n"
" font: 63 10pt \"Montserrat SemiBold\"; \n"
" border-radius: 5;\n"
" color: white\n"
"}\n"
"QPushButton:pressed {\n"
" background-color: rgb(4, 113, 127);\n"
"}")
self.btnNext_2.setObjectName("btnNext_2")
self.count_11 = QtWidgets.QLabel(self.page_3)
self.count_11.setGeometry(QtCore.QRect(420, 130, 21, 31))
self.count_11.setStyleSheet("font: 81 14pt \"Montserrat ExtraBold\";")
self.count_11.setObjectName("count_11")
self.lineQuestion_6 = QtWidgets.QLineEdit(self.page_3)
self.lineQuestion_6.setGeometry(QtCore.QRect(50, 330, 351, 31))
self.lineQuestion_6.setStyleSheet("font: 11pt \"Montserrat\";\n"
"\n"
"")
self.lineQuestion_6.setObjectName("lineQuestion_6")
self.count_6 = QtWidgets.QLabel(self.page_3)
self.count_6.setGeometry(QtCore.QRect(20, 330, 16, 31))
self.count_6.setStyleSheet("font: 81 14pt \"Montserrat ExtraBold\";")
self.count_6.setObjectName("count_6")
self.count_16 = QtWidgets.QLabel(self.page_3)
self.count_16.setGeometry(QtCore.QRect(420, 380, 31, 31))
self.count_16.setStyleSheet("font: 81 14pt \"Montserrat ExtraBold\";")
self.count_16.setObjectName("count_16")
self.count_15 = QtWidgets.QLabel(self.page_3)
self.count_15.setGeometry(QtCore.QRect(420, 330, 31, 31))
self.count_15.setStyleSheet("font: 81 14pt \"Montserrat ExtraBold\";")
self.count_15.setObjectName("count_15")
self.count_12 = QtWidgets.QLabel(self.page_3)
self.count_12.setGeometry(QtCore.QRect(420, 180, 31, 31))
self.count_12.setStyleSheet("font: 81 14pt \"Montserrat ExtraBold\";")
self.count_12.setObjectName("count_12")
self.lineQuestion_12 = QtWidgets.QLineEdit(self.page_3)
self.lineQuestion_12.setGeometry(QtCore.QRect(460, 180, 351, 31))
self.lineQuestion_12.setStyleSheet("font: 11pt \"Montserrat\";\n"
"\n"
"")
self.lineQuestion_12.setObjectName("lineQuestion_12")
self.stackedWidget.addWidget(self.page_3)
self.page_4 = QtWidgets.QWidget()
self.page_4.setObjectName("page_4")
self.stackedWidget.addWidget(self.page_4)
Newtest.setCentralWidget(self.centralwidget)
self.retranslateUi(Newtest)
self.stackedWidget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(Newtest)
def retranslateUi(self, Newtest):
_translate = QtCore.QCoreApplication.translate
Newtest.setWindowTitle(_translate("Newtest", "Новый тест"))
self.btnBack.setText(_translate("Newtest", "Назад"))
self.count_2.setText(_translate("Newtest", "2."))
self.count_5.setText(_translate("Newtest", "5."))
self.count_10.setText(_translate("Newtest", "10."))
self.count_7.setText(_translate("Newtest", "7."))
self.count_3.setText(_translate("Newtest", "3."))
self.count_8.setText(_translate("Newtest", "8."))
self.count_9.setText(_translate("Newtest", "9."))
self.count.setText(_translate("Newtest", "1."))
self.count_4.setText(_translate("Newtest", "4."))
self.Title_6.setText(_translate("Newtest", "Новый тест"))
self.count_13.setText(_translate("Newtest", "13."))
self.count_14.setText(_translate("Newtest", "14."))
self.btnNext_2.setText(_translate("Newtest", "Далее"))
self.count_11.setText(_translate("Newtest", "11."))
self.count_6.setText(_translate("Newtest", "6."))
self.count_16.setText(_translate("Newtest", "16."))
self.count_15.setText(_translate("Newtest", "15."))
self.count_12.setText(_translate("Newtest", "12."))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Newtest = QtWidgets.QMainWindow()
ui = Ui_Newtest()
ui.setupUi(Newtest)
Newtest.show()
sys.exit(app.exec())
NumberQuestions.py
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_NumberQuestions(object):
def setupUi(self, NumberQuestions):
NumberQuestions.setObjectName("NumberQuestions")
NumberQuestions.resize(330, 111)
self.gridLayoutWidget_2 = QtWidgets.QWidget(NumberQuestions)
self.gridLayoutWidget_2.setGeometry(QtCore.QRect(10, 0, 311, 31))
self.gridLayoutWidget_2.setObjectName("gridLayoutWidget_2")
self.gridLayout_2 = QtWidgets.QGridLayout(self.gridLayoutWidget_2)
self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
self.gridLayout_2.setObjectName("gridLayout_2")
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
self.gridLayout_2.addItem(spacerItem, 0, 0, 1, 1)
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
self.gridLayout_2.addItem(spacerItem1, 0, 2, 1, 1)
self.Title_2 = QtWidgets.QLabel(self.gridLayoutWidget_2)
self.Title_2.setStyleSheet("font: 81 14pt \"Montserrat ExtraBold\";\n"
"")
self.Title_2.setObjectName("Title_2")
self.gridLayout_2.addWidget(self.Title_2, 0, 1, 1, 1)
self.lineNumberQuestions = QtWidgets.QLineEdit(NumberQuestions)
self.lineNumberQuestions.setGeometry(QtCore.QRect(10, 50, 201, 31))
self.lineNumberQuestions.setStyleSheet("font: 11pt \"Montserrat\";\n"
"border-radius: 5;")
self.lineNumberQuestions.setObjectName("lineNumberQuestions")
self.btnNext = QtWidgets.QPushButton(NumberQuestions)
self.btnNext.setGeometry(QtCore.QRect(220, 50, 101, 31))
self.btnNext.setStyleSheet("QPushButton {\n"
" background-color: rgb(6, 135, 154);\n"
" font: 63 10pt \"Montserrat SemiBold\"; \n"
" border-radius: 5;\n"
" color: white\n"
"}\n"
"QPushButton:pressed {\n"
" background-color: rgb(4, 113, 127);\n"
"}")
self.btnNext.setObjectName("btnNext")
self.retranslateUi(NumberQuestions)
QtCore.QMetaObject.connectSlotsByName(NumberQuestions)
def retranslateUi(self, NumberQuestions):
_translate = QtCore.QCoreApplication.translate
NumberQuestions.setWindowTitle(_translate("NumberQuestions", "Количество вопросов"))
self.Title_2.setText(_translate("NumberQuestions", "Сколько вопросов в тесте ?"))
self.btnNext.setText(_translate("NumberQuestions", "Далее"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
NumberQuestions = QtWidgets.QDialog()
ui = Ui_NumberQuestions()
ui.setupUi(NumberQuestions)
NumberQuestions.show()
sys.exit(app.exec())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Возможный вариант реализации вашей идеи, выглядит примерно так:
#from PyQt6 import QtCore, QtGui, QtWidgets
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_NumberQuestions(object):
def setupUi(self, NumberQuestions):
NumberQuestions.setObjectName("NumberQuestions")
NumberQuestions.resize(330, 111)
self.gridLayoutWidget_2 = QtWidgets.QWidget(NumberQuestions)
self.gridLayoutWidget_2.setGeometry(QtCore.QRect(10, 0, 311, 31))
self.gridLayoutWidget_2.setObjectName("gridLayoutWidget_2")
self.gridLayout_2 = QtWidgets.QGridLayout(self.gridLayoutWidget_2)
self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
self.gridLayout_2.setObjectName("gridLayout_2")
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
self.gridLayout_2.addItem(spacerItem, 0, 0, 1, 1)
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
self.gridLayout_2.addItem(spacerItem1, 0, 2, 1, 1)
self.Title_2 = QtWidgets.QLabel(self.gridLayoutWidget_2)
self.Title_2.setStyleSheet("font: 81 14pt \"Montserrat ExtraBold\";\n"
"")
self.Title_2.setObjectName("Title_2")
self.gridLayout_2.addWidget(self.Title_2, 0, 1, 1, 1)
self.lineNumberQuestions = QtWidgets.QLineEdit(NumberQuestions)
self.lineNumberQuestions.setGeometry(QtCore.QRect(10, 50, 201, 31))
self.lineNumberQuestions.setStyleSheet("font: 11pt \"Montserrat\";\n"
"border-radius: 5;")
self.lineNumberQuestions.setObjectName("lineNumberQuestions")
self.btnNext = QtWidgets.QPushButton(NumberQuestions)
self.btnNext.setGeometry(QtCore.QRect(220, 50, 101, 31))
self.btnNext.setStyleSheet("QPushButton {\n"
" background-color: rgb(6, 135, 154);\n"
" font: 63 10pt \"Montserrat SemiBold\"; \n"
" border-radius: 5;\n"
" color: white\n"
"}\n"
"QPushButton:pressed {\n"
" background-color: rgb(4, 113, 127);\n"
"}")
self.btnNext.setObjectName("btnNext")
self.retranslateUi(NumberQuestions)
QtCore.QMetaObject.connectSlotsByName(NumberQuestions)
def retranslateUi(self, NumberQuestions):
_translate = QtCore.QCoreApplication.translate
NumberQuestions.setWindowTitle(_translate("NumberQuestions", "Количество вопросов"))
self.Title_2.setText(_translate("NumberQuestions", "Сколько вопросов в тесте ?"))
self.btnNext.setText(_translate("NumberQuestions", "Далее"))
class NewTest(QtWidgets.QMainWindow):
def __init__(self, many_questions):
super().__init__()
self.resize(840, 500)
self.setWindowTitle("Новый тест")
self.many_questions = many_questions
self.centralwidget = QtWidgets.QWidget()
self.centralwidget.setObjectName("centralwidget")
self.setCentralWidget(self.centralwidget)
self.stackedWidget = QtWidgets.QStackedWidget(self.centralwidget)
self.btnBack = QtWidgets.QPushButton("Назад")
self.btnBack.clicked.connect(lambda: self.stackedWidget.setCurrentIndex(0))
self.btnNext_2 = QtWidgets.QPushButton("Далее")
self.btnNext_2.clicked.connect(lambda: self.stackedWidget.setCurrentIndex(1))
self.main_layout = QtWidgets.QGridLayout(self.centralwidget)
self.main_layout.setContentsMargins(0, 0, 0, 0)
self.main_layout.addWidget(self.stackedWidget, 0, 0, 1, 2)
self.main_layout.addWidget(self.btnBack, 1, 0)
self.main_layout.addWidget(self.btnNext_2, 1, 1)
if self.many_questions <= 16:
questions_1 = self.many_questions
questions_2 = 0
self.btnNext_2.setEnabled(False)
else:
questions_1 = 16
questions_2 = self.many_questions - 16
self._page_1(questions_1)
if questions_2:
self._page_2(questions_2)
def _page_1(self, questions_1):
self.page_1 = QtWidgets.QWidget()
self.page_1.setObjectName("page_1")
self.page_1.setStyleSheet("background-color: #519259;")
layout = QtWidgets.QGridLayout(self.page_1)
many_widget = questions_1
column = 2
for step in range(many_widget):
widget = QtWidgets.QWidget()
form_layout = QtWidgets.QFormLayout(widget)
lineEdit = QtWidgets.QLineEdit()
lineEdit.setStyleSheet(
"background-color: #91d299;"
"font: 81 14pt \"Montserrat ExtraBold\";"
)
lineEdit.setMinimumHeight(31)
form_layout.addRow(f'{step+1:2}.', lineEdit)
row = step // column
col = step % column
layout.addWidget(widget, row, col)
layout.setRowStretch(9, 1)
self.stackedWidget.addWidget(self.page_1)
def _page_2(self, questions_2):
self.page_2 = QtWidgets.QWidget()
self.page_2.setObjectName("page_2")
layout = QtWidgets.QGridLayout(self.page_2)
many_widget = questions_2
column = 2
for step in range(many_widget):
widget = QtWidgets.QWidget()
form_layout = QtWidgets.QFormLayout(widget)
lineEdit = QtWidgets.QLineEdit()
lineEdit.setStyleSheet(
"font: 81 14pt \"Montserrat ExtraBold\";"
)
lineEdit.setMinimumHeight(31)
form_layout.addRow(f'{step+17:2}.', lineEdit)
row = step // column
col = step % column
layout.addWidget(widget, row, col)
layout.setRowStretch(9, 1)
self.stackedWidget.addWidget(self.page_2)
class Dialog(QtWidgets.QDialog, Ui_NumberQuestions):
def __init__(self):
super().__init__()
self.setupUi(self)
self.btnNext.clicked.connect(self.btn_clicked)
def btn_clicked(self):
_questions = self.lineNumberQuestions.text()
if not _questions:
msg = QtWidgets.QMessageBox.information(
self,
'Внимание',
'Укажите сколько вопросов в тесте.')
return
try:
many_questions = int(_questions)
if many_questions > 32 or many_questions < 1:
raise Exception("1 > many_questions > 32")
except:
msg = QtWidgets.QMessageBox.information(
self,
'Внимание',
'Неправильно указано количество вопросов в тесте.')
return
self.newTest = NewTest(many_questions)
self.newTest.show()
self.hide()
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
app.setFont(QtGui.QFont("Consolas", 14))
w = Dialog()
w.show()
sys.exit(app.exec())
Обратите внимание, что я ограничил количество вопросов от 1 до 32.


