Загрузка данных


import sys
from PyQt6.QtWidgets import (QApplication, QWidget, QVBoxLayout, QHBoxLayout,
                             QLabel, QLineEdit, QPushButton, QTabWidget,
                             QSplitter, QRadioButton, QCheckBox, QGroupBox,
                             QStackedWidget, QTextEdit)
from PyQt6.QtCore import Qt

class SetupWizard(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Настройка проекта")
        self.resize(600, 450)

        # Главный сплиттер: контент сверху, кнопки снизу
        self.splitter = QSplitter(Qt.Orientation.Vertical)

        # Стек страниц
        self.stack = QStackedWidget()
        self.stack.addWidget(self.page1())
        self.stack.addWidget(self.page2())

        # Нижняя панель с кнопками
        nav = QWidget()
        nav_layout = QHBoxLayout(nav)
        self.btn_back = QPushButton("← Назад")
        self.btn_next = QPushButton("Вперед →")
        self.btn_back.clicked.connect(lambda: self.stack.setCurrentIndex(0))
        self.btn_next.clicked.connect(lambda: self.stack.setCurrentIndex(1))
        nav_layout.addWidget(self.btn_back)
        nav_layout.addStretch()
        nav_layout.addWidget(self.btn_next)

        self.splitter.addWidget(self.stack)
        self.splitter.addWidget(nav)
        self.splitter.setSizes([380, 50])

        layout = QVBoxLayout(self)
        layout.addWidget(self.splitter)

    def page1(self):
        """Шаг 1: Основные настройки"""
        page = QWidget()
        layout = QVBoxLayout(page)
        layout.addWidget(QLabel("<b>Шаг 1: Основные настройки</b>"))

        # Внутренний сплиттер: инфо-блок и поле ввода
        inner_split = QSplitter(Qt.Orientation.Vertical)
        info = QTextEdit()
        info.setReadOnly(True)
        info.setText("Информация о проекте")
        inner_split.addWidget(info)
        inner_split.addWidget(QLineEdit("Веб-сайт компании"))
        inner_split.setSizes([200, 40])

        layout.addWidget(inner_split)
        layout.addWidget(QPushButton("Создать проект"))
        return page

    def page2(self):
        """Шаг 2: Методология и отчетность (QTabWidget)"""
        page = QWidget()
        layout = QVBoxLayout(page)
        layout.addWidget(QLabel("<b>Шаг 2: Методология проекта</b>"))

        tabs = QTabWidget()

        # Вкладка "Методология"
        tab1 = QWidget()
        t1 = QVBoxLayout(tab1)
        box1 = QGroupBox("Выбор методологии")
        b1 = QVBoxLayout(box1)
        for name in ("Agile", "Waterfall", "Kanban"):
            b1.addWidget(QRadioButton(name))
        b1.addStretch()
        t1.addWidget(box1)

        # Вкладка "Отчетность"
        tab2 = QWidget()
        t2 = QVBoxLayout(tab2)
        box2 = QGroupBox("Настройки отчетов")
        b2 = QVBoxLayout(box2)
        b2.addWidget(QCheckBox("Еженедельные отчеты"))
        b2.addWidget(QCheckBox("Ежедневные стендапы"))
        b2.addStretch()
        t2.addWidget(box2)

        tabs.addTab(tab1, "Методология")
        tabs.addTab(tab2, "Отчетность")
        layout.addWidget(tabs)
        return page

if __name__ == '__main__':
    app = QApplication(sys.argv)
    SetupWizard().show()
    sys.exit(app.exec())