Qt知识点梳理 —— 代码实现菜单栏工具栏

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

添加到项目中;

在imgs.qrc中,点击“Add Prefix”添加前缀,修改前缀名称后,点击“Add Files”添加图像;

图像资源成功导入;

程序实现


首先在头文件中声明QMenu(菜单栏)、QToolBar(工具栏)、QAction(动作)

QMenu *fileMenu;//声明菜单栏

QMenu *operaMenu;//声明菜单栏

QToolBar *fileTool;//声明工具栏

QAction *readAct;//声明读文件菜单

QAction *writeAct;//声明写文件菜单

QAction *updateAct;//声明更新文件菜单

QAction *exitAct;//声明推出程序菜单

首先创建动作,并使用connect() 绑定动作执行内容

void MainWindow::CreateActions()//实例化下拉菜单功能

{

const QIcon readActIcon =QIcon(“:/imgs/read.png”);

readAct = new QAction(readActIcon, QStringLiteral(“读取文件(&O)”),this);//实例化readAct

readAct->setStatusTip(QStringLiteral(“读取文件”));//设置鼠标停留显示内容

readAct->setShortcuts(QKeySequence::Open);//打开快捷键

connect(readAct, &QAction::triggered, this, &MainWindow::ReadFile);//绑定动作执行内容

const QIcon writeActIcon =QIcon(“:/imgs/write.png”);

writeAct = new QAction(writeActIcon, QStringLiteral(“写入文件(&N)”), this);

writeAct->setStatusTip(QStringLiteral(“写入文件”));

writeAct->setShortcuts(QKeySequence::New);//创建快捷键

connect(writeAct, &QAction::triggered, this, &MainWindow::WriteFile);

const QIcon updateActIcon =QIcon(“:/imgs/update.png”);

updateAct = new QAction(updateActIcon, QStringLiteral(“更新文件(&U)”), this);

updateAct->setStatusTip(QStringLiteral(“更新文件”));

connect(updateAct, &QAction::triggered, this, &MainWindow::UpdateFile);

const QIcon exitActIcon =QIcon(“:/imgs/exit.png”);

exitAct = new QAction(exitActIcon, QStringLiteral(“退出系统(&E)”), this);

exitAct->setStatusTip(QStringLiteral(“退出系统”));

exitAct->setShortcuts(QKeySequence::Close);//退出系统快捷键

connect(exitAct, &QAction::triggered, this, &MainWindow::ExitProgram);

}

创建菜单栏,并加入动作:

void MainWindow::CreatMenuBar()

{

fileMenu = menuBar()->addMenu(QStringLiteral(“文件”).trimmed()+tr(“(&F)”));//实例化一个菜单栏

operaMenu = menuBar()->addMenu(QStringLiteral(“操作”).trimmed()+tr(“(&A)”));//实例化一个菜单栏

fileMenu->addAction(readAct);//添加动作

fileMenu->addAction(writeAct);

fileMenu->addAction(updateAct);

fileMenu->addSeparator();

fileMenu->addAction(exitAct);

}

创建工具栏,并加入动作:

void MainWindow::CreateToolbar()//实例化工具栏

{

fileTool = addToolBar(QStringLiteral(“文件”));

fileTool->addAction(readAct);//添加动作

fileTool->addAction(writeAct);

fileTool->addAction(updateAct);

fileMenu->addSeparator();

fileMenu->addAction(exitAct);

}

实现读取文件函数,此处为读取文件实际操作,使用QSettings辅助读取ini文件:

void MainWindow::ReadFile()

{

QSettings *settings = new QSettings(“./file.ini”,QSettings::IniFormat);//调用QSettings操作ini文件

QString lang = settings->value(“content”,“”).toString();//读出ini文件中保存的内容,默认为空

ui->textEdit->setText(lang);//将读出的内容显示到窗口中

delete settings;

QMessageBox::information(this,QStringLiteral(“提示”), QStringLiteral(“读取成功!”));

}

实现写入文件函数,此处为写入文件实际操作,同样使用QSettings;

更新文件和写入文件道理一样,这跟ini文件特性有关,直接对指定key赋值即为更新;

//写入文件内容

void MainWindow::WriteFile()

{

QSettings *settings = new QSettings(“./file.ini”,QSettings::IniFormat);

settings->setValue(“content”,“hello, this is a file!”);//将内容写入ini文件中

delete settings;

QMessageBox::information(this,QStringLiteral(“提示”), QStringLiteral(“写入成功!”));

}

//更新文件内容

void MainWindow::UpdateFile()

{

QSettings *settings = new QSettings(“./file.ini”,QSettings::IniFormat);

settings->setValue(“content”,ui->textEdit->toPlainText());//将当前选择的语言写入ini文件中

delete settings;

QMessageBox::information(this,QStringLiteral(“提示”), QStringLiteral(“更新成功!”));

}

实现退出系统函数,增加退出确认功能;如下:

void MainWindow::ExitProgram()

{

QMessageBox::StandardButton btn;

btn = QMessageBox::question(this, QStringLiteral(“提示”), QStringLiteral(“是否退出系统?”), QMessageBox::Yes|QMessageBox::No);//添加是和否选择按钮

if (btn == QMessageBox::Yes) {//如果选择是

this->close();//退出系统

}

}

最后,只需要在MainWindow构造函数中调用以上实现的方法即可:

由于创建菜单栏和工具栏的时候就把动作加进去,所以这里需要先创建动作Action

MainWindow::MainWindow(QWidget *parent)
QMainWindow(parent)

, ui(new Ui::MainWindow)

{

ui->setupUi(this);

//由于创建菜单栏和工具栏的时候就把动作加进去,所以这里需要先创建动作Action

CreateActions();//创建动作Action

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

mg-RcpGslSD-1715790462867)]
[外链图片转存中…(img-p2fAE8Nx-1715790462867)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值