QT常用控件—菜单栏和对话框

本文详细介绍了QT编程中如何创建和使用菜单栏、工具栏以及对话框,包括QMainWindow类的菜单栏创建,QToolBar的工具栏添加,以及QDialog的模态与非模态对话框实现。通过实例演示了QMenu、QToolBar和QDialog的使用,涵盖资源文件的添加、QFileDialog等标准文件对话框的使用,以及QMessageBox、QColorDialog和QFontDialog等内置对话框的应用。
摘要由CSDN通过智能技术生成

引言

QMainWindow 是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个锚接部件(dock widgets)、一个状态栏(status bar)及一个中心部件(central widget),是许多应用程序的基础,如文本编辑器,图片编辑器等。(本篇主要介绍菜单栏和工具栏)

本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓ 


一,菜单栏

一个主窗口最多只有一个菜单栏。位于主窗口顶部、主窗口标题栏下面。

  • 创建菜单栏。
QMenuBar* menuBar = new QMenuBar(this);
  • 创建菜单,调用 QMenu 的成员函数 addMenu 来添加菜单
QAction* addMenu(QMenu * menu)
QMenu* addMenu(const QString & title) 
QMenu* addMenu(const QIcon & icon, const QString & title)
  • 创建菜单项,调用 QMenu 的成员函数 addAction 来添加菜单项
QAction* activeAction() 
QAction* addAction(const QString & text) 
QAction* addAction(const QIcon & icon, const QString & text) 
QAction* addAction(const QString & text, const QObject * receiver, const char * member, const QKeySequence & shortcut = 0) 
QAction* addAction(const QIcon & icon, const QString & text, const QObject * receiver, const char * member,const QKeySequence & shortcut = 0)

实例演示:(vs2019+qt5)

 //创建菜单栏
    QMenuBar* menuBar = new QMenuBar(this);
//创建菜单(用addMenu方法添加入菜单栏)
    QMenu* filename = menuBar->addMenu(QStringLiteral("文件(&F)"));
//创建菜单项
    QAction* openfile = new QAction(QStringLiteral("打开文件(&O)"));
    QAction* opendlg = new QAction(QStringLiteral("打开对话框(&D)"));
//给菜单项添入图标
    openfile->setIcon(QIcon(":/D:/image/Luffy.png"));
    opendlg->setIcon(QIcon(":/D:/image/LuffyQ.png"));
//用addAction加入菜单项
    filename->addAction(opendlg);
    filename->addAction(openfile);

注意:使用 QStringLiteral 宏可以在编译期把代码里的常量字符串 str 直接构造为 QString 对象,于是运行时就不再需要额外的构造开销了。


资源文件的添加

openfile->setIcon(QIcon(":/D:/image/Luffy.png"));
对于该句代码":/D:/image/Luffy.png"是以相对路径添加的(即以:/开头的是资源文件),那么如何添加资源文件呢?
  • 添加->新建项->Qt->Qt Resource File。

  • 在Resource1.qrc中添加说需要的资源(比如图片)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值