Qt实现菜单栏,工具栏,状态栏

1.菜单栏

1.设计模式

点击 在这里输入 输入完毕后直接回车即可
这里写图片描述
同样子菜单也是同样操作。
如果我们想给菜单设置ICON,可以如下操作:
在File下新建一个Open子菜单,现在想给Open子菜单添加Icon图标。选中子菜单Open,在Open子菜单对应的QAction属性中可以设置icon
Qt实现菜单栏,工具栏,状态栏_第1张图片
点击icon后的下三角,可以发现有两个选择,一个是选择文件,另一个是选择资源。
a)选择文件:
我们点击选择文件,然后选中相应的icon,这时我们在设计模式下,是能正常看到此图标在菜单显示了

然后在qt Creator里清除->构建->执行Qmake,然后运行即可。
这里写图片描述

b)选择资源:
我们先来创建资源文件。右击工程项目->添加新文件,
Qt实现菜单栏,工具栏,状态栏_第2张图片
选择Qt->Qt Resource File,然后点击choose

在弹出的窗口里,给新资源文件命名:menu_icon

在项目里就能看见多了一个资源文件

然后右击资源文件名menu_icon.qrc,添加现有文件,把我们想要的icon加进来。
这里写图片描述
剩下的操作就是步骤a)中设置QAction的icon属性了,这时就是选择资源文件了,Qt实现菜单栏,工具栏,状态栏_第3张图片
比如选择Document,然后重新构建,运行即可。

2.代码模式

当然,除了设计模式来实现菜单外,也可以直接使用代码来实现菜单
比如,下图是设计模式中实现的菜单
这里写图片描述
这时我们来通过代码实现一个主菜单和子菜单

//新增主菜单
QMenu* menu = ui->menuBar->addMenu(tr("CodeMenu"));
//创建子菜单
QAction* subCodeMenuAction = new QAction(tr("subCodeMenu"),this);
//给子菜单加icon图标
subCodeMenuAction->setIcon(QIcon(tr("res/24x24/loop.png")));
//把子菜单和父菜单关联
menu->addAction(subCodeMenuAction);
//添加信号槽
//connect(subCodeMenuAction,SIGNAL(triggered(bool)),this,SLOT(clickSubCodeMenuAction));

这就是添加代码之后的运行效果。
这里写图片描述

2.工具栏

a)准备工作,我们现在工程中新增一个资源文件为9.png,后面用
b)我们在Action Editor中点击新建Action
Qt实现菜单栏,工具栏,状态栏_第4张图片

Qt实现菜单栏,工具栏,状态栏_第5张图片
命名和选择图标后点击确定。
这时我们在Action Editor中看见多了一个Action

这时可以直接用鼠标把它拖到工具栏上。
保存后运行,我们就可以看到已经添加到工具栏上了。
这里写图片描述

c)代码实现
在我们上面的步骤a,b中实现工具栏的时候,我们就明白了,其实就是增加QAction,那么我们的代码实现也一样,就是把新增的QAction和工具栏关联起来就可以了

    //新增QAction
    QAction* newItemToolBar = new QAction(tr("newItem"),this);
    //给QAction加icon图标
    newItemToolBar->setIcon(QIcon(tr("res/24x24/8.png")));
    //把QAction和工具栏关联
    ui->mainToolBar->addAction(newItemToolBar);

然后运行,我们看下结果。

这里工具栏上的8就是我们通过代码实现的。

3.状态栏
状态栏的实现就很简单了,直接贴代码了。

    QLabel* label1 = new QLabel(tr("Label1"),this);
    QLabel* label2 = new QLabel(tr("Label2"),this);
    QLabel* label3 = new QLabel(tr("Label3"),this);
    QLabel* label4 = new QLabel(tr("Label4"),this);
    ui->statusBar->addWidget(label1,1);
    ui->statusBar->addWidget(label2,1);
    ui->statusBar->addWidget(label3,1);
    ui->statusBar->addWidget(label4,1);

然后我们看下运行结果
这里写图片描述

你可能感兴趣的:(qt,菜单栏,工具栏,qt菜单栏,qt工具栏)