/
LostDead
/
G.E.E.Z
Обзор
Документация
Войти
/
LostDead
/
G.E.E.Z
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
gamelauncher.cpp
94 строки
3 KB
Максим Антонов
upload files
10 май 2025, 21:30
10 май 2025, 21:30
4dee2a9
Код
Авторство
О чём код?
#include "gamelauncher.h" #include <QVBoxLayout> #include <QHBoxLayout> #include <QSpacerItem> #include <QDebug> GameLauncher::GameLauncher(QWidget *parent) : QWidget(parent) { setFixedSize(600, 400); // Увеличим размер окна setStyleSheet( "background: rgba(30, 30, 30, 220);" "border-radius: 15px;" "border: 2px solid #B22222;" ); // Основной вертикальный layout QVBoxLayout *mainLayout = new QVBoxLayout(this); // Добавляем растяжение сверху mainLayout->addStretch(); // Кнопка в верхней части m_startBtn = new QPushButton("🎮 Доступные игры", this); m_startBtn->setFixedSize(200, 40); // Фиксированный размер кнопки m_startBtn->setStyleSheet( "QPushButton {" " background: #32CD32;" " color: white;" " border-radius: 10px;" " font-size: 16px;" "}" "QPushButton:hover { background: #228B22; }" ); // Список игр внизу слева m_gameList = new QListWidget(this); m_gameList->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); m_gameList->setStyleSheet( "QListWidget {" " background: #FF0000;" /* Яркий цвет для тестирования */ " color: white;" " border-radius: 10px;" "}" "QListWidget::item {" " padding: 10px;" " border-bottom: 1px solid #444;" "}" "QListWidget::item:hover { background: rgba(255, 255, 255, 0.1); }" ); m_gameList->hide(); // Расположение элементов mainLayout->addWidget(m_startBtn, 0, Qt::AlignHCenter); // Кнопка по центру вверху // Горизонтальный layout для нижней части QHBoxLayout *bottomLayout = new QHBoxLayout(); bottomLayout->addWidget(m_gameList); // Список слева bottomLayout->addStretch(); // Растягиваемое пространство справа mainLayout->addLayout(bottomLayout); mainLayout->addStretch(); // Добавляем растяжение между кнопкой и списком connect(m_startBtn, &QPushButton::clicked, [this]() { qDebug() << "Button clicked. List visible:" << m_gameList->isVisible(); if(m_gameList->isHidden()) { loadSteamGames(); m_gameList->show(); qDebug() << "List should be visible now. Items count:" << m_gameList->count(); } else { m_gameList->hide(); } }); connect(m_gameList, &QListWidget::itemClicked, this, &GameLauncher::onGameSelected); } void GameLauncher::loadSteamGames() { m_gameList->clear(); m_gameList->addItems({ "Counter-Strike 2", "Dota 2", "Half-Life 3", "Portal 2", "Team Fortress 2", "Left 4 Dead 2" }); // Принудительное обновление виджета m_gameList->updateGeometry(); qDebug() << "Games loaded:" << m_gameList->count() << "items"; } void GameLauncher::onGameSelected(QListWidgetItem *item) { emit gameStarted(item->text()); m_gameList->hide(); }