import sys
from PyQt6.QtWidgets import (QApplication, QWidget, QVBoxLayout, QLabel,
QDateEdit, QComboBox, QGroupBox, QTextEdit,
QPushButton, QFormLayout, QCheckBox)
from PyQt6.QtCore import QDate, Qt
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Фитнес-трекер")
window.resize(560, 680)
window.setStyleSheet("background-color: #1e1e1e; color: white; font-size: 14px;")
layout = QVBoxLayout(window)
# Заголовок
title = QLabel("Фитнес-трекер")
title.setAlignment(Qt.AlignmentFlag.AlignCenter)
title.setStyleSheet("font-size: 22px; font-weight: bold; padding: 10px;")
layout.addWidget(title)
# --- Период тренировок ---
period = QGroupBox("Период тренировок")
period_form = QFormLayout()
date_start = QDateEdit()
date_start.setCalendarPopup(True)
date_start.setDate(QDate(2026, 1, 19))
date_end = QDateEdit()
date_end.setCalendarPopup(True)
date_end.setDate(QDate(2026, 2, 19))
goal = QComboBox()
goal.addItems([
"Похудение (3000 руб/мес)",
"Набор массы (3500 руб/мес)",
"Поддержание формы (2500 руб/мес)"
])
period_form.addRow("Начало цикла:", date_start)
period_form.addRow("Окончание цикла:", date_end)
period_form.addRow("Цель тренировок:", goal)
period.setLayout(period_form)
layout.addWidget(period)
# --- Дополнительные услуги ---
extra = QGroupBox("Дополнительные услуги")
extra_layout = QVBoxLayout()
cb_trainer = QCheckBox("Персональный тренер (+15000 руб/мес)")
cb_diet = QCheckBox("Индивидуальный план питания (+5000 руб)")
cb_diet.setChecked(True)
extra_layout.addWidget(cb_trainer)
extra_layout.addWidget(cb_diet)
extra.setLayout(extra_layout)
layout.addWidget(extra)
# --- Стоимость ---
cost = QGroupBox("Стоимость фитнес-программы")
cost_layout = QVBoxLayout()
cost_layout.addWidget(QLabel("Детали расчета:"))
details = QTextEdit()
details.setReadOnly(True)
details.setFixedHeight(90)
details.setPlainText(
"Базовая программа: 3,000 руб/мес\n"
"Период: 1 мес\n"
"Индивидуальный план питания: +5,000 руб"
)
cost_layout.addWidget(details)
cost_layout.addWidget(QLabel("Ежемесячно: 3 000 руб"))
total = QLabel("За весь период: 8 000 руб")
total.setAlignment(Qt.AlignmentFlag.AlignCenter)
total.setStyleSheet(
"font-size: 24px; font-weight: bold; color: #c62828;"
"background-color: #fbe9e9; padding: 14px; border-radius: 6px;"
)
cost_layout.addWidget(total)
cost.setLayout(cost_layout)
layout.addWidget(cost)
# Кнопка
btn = QPushButton("Рассчитать стоимость")
layout.addWidget(btn)
window.show()
sys.exit(app.exec())