以下是一个简单的Qt程序,实现了像Steam库中的游戏分类功能。该程序允许用户创建新的游戏组,并将游戏分类到这些组中。

#include <QtWidgets>

class MainWindow : public QMainWindow {
public:
    MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) {
        setWindowTitle("Steam Library");

        // 创建顶部菜单栏
        QMenuBar *menuBar = new QMenuBar(this);
        setMenuBar(menuBar);

        // 创建“文件”菜单
        QMenu *fileMenu = new QMenu(tr("&File"), menuBar);
        menuBar->addMenu(fileMenu);

        QAction *newGroupAction = fileMenu->addAction(tr("&New Group"));
        connect(newGroupAction, &QAction::triggered, this, &MainWindow::newGroup);

        fileMenu->addSeparator();

        QAction *quitAction = fileMenu->addAction(tr("&Quit"));
        connect(quitAction, &QAction::triggered, qApp, &QCoreApplication::quit);

        // 创建中心部分的游戏列表
        gameListWidget = new QListWidget(this);
        setCentralWidget(gameListWidget);

        // 添加一些示例游戏
        addGame("Half-Life 2", "First-person shooter");
        addGame("Portal 2", "Puzzle-platformer");
        addGame("Team Fortress 2", "Multiplayer first-person shooter");
    }

private slots:
    void newGroup() {
        bool ok;
        QString groupName = QInputDialog::getText(this, tr("New Group"), tr("Enter group name:"), QLineEdit::Normal, "", &ok);
        if (ok && !groupName.isEmpty()) {
            // 创建新的游戏组
            QListWidgetItem *groupItem = new QListWidgetItem(groupName, gameListWidget);
            groupItem->setFlags(Qt::ItemIsEnabled);

            // 将选中的游戏添加到新的组中
            QList<QListWidgetItem *> selectedItems = gameListWidget->selectedItems();
            for (QListWidgetItem *item : selectedItems) {
                item->setParent(groupItem);
            }
        }
    }

private:
    void addGame(const QString &name, const QString &genre) {
        QListWidgetItem *item = new QListWidgetItem(name, gameListWidget);
        item->setData(Qt::UserRole, genre);
    }

    QListWidget *gameListWidget;
};

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    MainWindow mainWindow;
    mainWindow.show();

    return app.exec();
}
qt上如果要实现像steam库里的游戏分类并可添加新组可分类游戏到其他组中用c++代码实现显示完整代码

原文地址: http://www.cveoy.top/t/topic/bxSR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录