您的位置:首页 > 教育 > 锐评 > 专业团队原图_采购需求发布平台_企业管理培训视频免费_网络舆情处理公司

专业团队原图_采购需求发布平台_企业管理培训视频免费_网络舆情处理公司

2025/6/4 19:03:03 来源:https://blog.csdn.net/youlinhuanyan/article/details/147544938  浏览:    关键词:专业团队原图_采购需求发布平台_企业管理培训视频免费_网络舆情处理公司
专业团队原图_采购需求发布平台_企业管理培训视频免费_网络舆情处理公司

Ubuntu下安装vsode+qt搭建开发框架(三)

上一节我们介绍了使用cmake构建Qt项目,接下来我们继续延伸,进一步构建一个qt项目,我们还是继续沿用前面的qt项目框架,开发一个稍微复杂一点Qt窗口项目,如下所示;
在这里插入图片描述

一、添加代码

我们先看看项目结构
在这里插入图片描述
这里我们添加两个文件MainWindow.hMainWindow.cpp代码如下

MainWindow.h文件如下

// MainWindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QLabel>
#include <QMenu>
#include <QString>class MainWindow : public QMainWindow {Q_OBJECT // Qt 元对象系统所需的宏public:MainWindow(QWidget *parent = nullptr):QMainWindow(parent){init();};void init();private slots:// 统一处理菜单点击的槽函数void handleMenuAction();// 按钮点击的槽函数void onButtonClicked();private:QLabel *label;// 辅助函数用于创建菜单项void createAction(QMenu *menu, const QString &text, const QString &message);
};#endif // MAINWINDOW_H

MainWindow.cpp文件如下

// MainWindow.cpp
#include <QLabel>
#include <QMenuBar>
#include <QMenu>
#include <QAction>
#include <QPushButton>
#include <QVBoxLayout>
#include <QApplication>#include "MainWindow.h"
#include "dialog.h"void MainWindow::init() {// 创建布局// setLayout(new QVBoxLayout());QWidget *centralWidget = new QWidget(this);QVBoxLayout *layout = new QVBoxLayout(centralWidget);setCentralWidget(centralWidget);centralWidget->setLayout(layout);// 设置窗口属性setWindowTitle("Qt5二级菜单示例");resize(800, 600);// 创建标签label = new QLabel("初始文本", this);label->setAlignment(Qt::AlignCenter);// setCentralWidget(label);layout->addWidget(label);// 创建按钮QPushButton *button = new QPushButton("弹出对话框", this);connect(button, &QPushButton::clicked, this, &MainWindow::onButtonClicked);layout->addWidget(button);// 创建菜单栏QMenuBar *menuBar = new QMenuBar(this);setMenuBar(menuBar);// 创建文件菜单QMenu *fileMenu = menuBar->addMenu("文件(&F)");// 一级菜单项createAction(fileMenu, "新建(&N)", "新建被点击");createAction(fileMenu, "打开(&O)", "打开被点击");// 创建二级菜单(导出子菜单)QMenu *exportMenu = fileMenu->addMenu("导出(&E)");createAction(exportMenu, "PDF格式(&P)", "导出为PDF被点击");createAction(exportMenu, "PNG格式(&N)", "导出为PNG被点击");fileMenu->addSeparator();createAction(fileMenu, "退出(&Q)", "退出被点击");}// 按钮点击槽函数
void MainWindow::onButtonClicked() {Dialog dialog(this);dialog.exec();
}// 统一处理菜单点击的槽函数
void MainWindow::handleMenuAction() {QAction *action = qobject_cast<QAction*>(sender());if (action) {QString message = action->data().toString();label->setText(message);if (message == "退出被点击") {QApplication::quit();}}
}// 创建菜单项的辅助函数
void MainWindow::createAction(QMenu *menu, const QString &text, const QString &message) {QAction *action = new QAction(text, this);action->setData(message);  // 存储关联消息menu->addAction(action);connect(action, &QAction::triggered, this, &MainWindow::handleMenuAction);
}

此外,我们的main.cpp需要修改一下,为如下:
main.cpp文件

#include <QApplication>
#include "MainWindow.h"int main(int argc, char *argv[]) {QApplication app(argc, argv);MainWindow mainWindow;mainWindow.show();return app.exec();
}

其他两个文件dialog.hdialog.cpp不需要改变,参考上一节代码,点这里

二、执行编译

注意CmakeLists.txt文件内容不变,我们在vsode中的cmake tools插件面板中,右键点击Debug,如下所示
在这里插入图片描述

注意需要预先安装Cmake Tools插件工具;如未安装,则可使用命令进行编译(如未安装cmake编译环境,可以点着有教程安装)

cd build
cmake ..
make

编译成功后,可以进入build目录执行目标文件MyQtProject

执行Debug后,弹出如下窗口,则编译成功

在这里插入图片描述
完成

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com