温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

子类化QMainWindows,添加菜单栏及工具栏,并添加图标

发布时间:2020-07-25 13:03:13 来源:网络 阅读:10881 作者:泉奕 栏目:系统运维

mymainwindow.cpp

#include "mymainwindow.h"
#include "ui_mymainwindow.h"

//#include <QMenuBar>           //使用前向声明,不使用头文件包含的形式,主要是为了编译更快
class QMenuBar;//类的前向声明

myMainWindow::myMainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::myMainWindow)
{
    ui->setupUi(this);
    openAction = new QAction(tr("&open"),this);
    openAction->setShortcut(QKeySequence::Open);//动作的快捷键;比如:open快捷键 Ctrl+O(Qt的QKeySequence定义的)
    openAction->setStatusTip(tr("open a file"));//添加状态栏的提示语句

    
    file = menuBar()->addMenu(tr("&File"));
    file->addAction(openAction);

    toolBar = addToolBar(tr("&File"));
    toolBar->addAction(openAction);


}

myMainWindow::~myMainWindow()
{
    delete ui;
}

运行之后,如图:

子类化QMainWindows,添加菜单栏及工具栏,并添加图标


添加图标:1、首先要使用Qt的资源文件。在QtCreator的项目上右击,选择New File...,然后选择resource file。

       子类化QMainWindows,添加菜单栏及工具栏,并添加图标

2、然后点击choose,命名,选择好位置,下一步,完成即可。为了使用方便,我就把这个文件建在根目录下,建议应该在仔细规划好文件之后,建在专门的rsources文件夹下。完成之后,生成的是一个.qrc文件,qrc其实是Qt Recource Collection的缩写。

子类化QMainWindows,添加菜单栏及工具栏,并添加图标

子类化QMainWindows,添加菜单栏及工具栏,并添加图标

3、点击Add按钮,首先选择Add prefix,然后把生成的/new/prefix改成/。这是prefix就是以后使用图标时需要提供的前缀,以/开头。添加过prefix之后,然后在工程文件中添加一个图标,再选择Add file,选择那个图标。这样完成之后保存qrc文件即可。

子类化QMainWindows,添加菜单栏及工具栏,并添加图标

图片的路径怎么看呢?可以看出,Qt的资源文件视图使用树状结构,根是/,叶子节点就是图片位置,连接在一起就是路径。比如这张图片的路径就是/resource/Open.png。

4、添加代码 

class QIcon;  //类的前向声明
  ...

 myMainWindow::myMainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::myMainWindow)
{
    ui->setupUi(this);
    openAction = new QAction(tr("&open"),this);
    openAction->setShortcut(QKeySequence::Open);//动作的快捷键;比如:open快捷键 Ctrl+O(Qt的QKeySequence定义的)
    openAction->setStatusTip(tr("open a file"));//添加状态栏的提示语句
   
    openAction->setIcon(QIcon(":/resource/open.png"));//添加这句代码,添加图标

    
    file = menuBar()->addMenu(tr("&File"));
    file->addAction(openAction);

    toolBar = addToolBar(tr("&File"));
    toolBar->addAction(openAction);


}

运行如图:子类化QMainWindows,添加菜单栏及工具栏,并添加图标


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI