qt上如果要实现像steam库里的游戏分类并可添加新组可分类游戏到其他组中用c++代码实现显示完整代码
以下是一个简单的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();
}
原文地址: http://www.cveoy.top/t/topic/bxSR 著作权归作者所有。请勿转载和采集!