Как добавить виджеты в 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.


введите сюда описание изображения

введите сюда описание изображения

введите сюда описание изображения

→ Ссылка