首页 >> 大全

5.1 菜单栏

2023-09-16 大全 27 作者:考证青年

CSDN话题挑战赛第2期

参赛话题:Qt应用程序开发

文章目录

5

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

5.1 菜单栏

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

创建菜单栏,通过类的()函数获取主窗口菜单栏指针

* () const

创建菜单,调用QMenu的成员函数来添加菜单

* (QMenu * menu)

QMenu* (const & title)

QMenu* (const QIcon & icon, const & title)

创建菜单项,调用QMenu的成员函数来添加菜单项

* () const

* (const & text)

* (const QIcon & icon, const & text)

* (const & text, const * ,

const char * , const & = 0)

菜单栏一般有哪五个菜单__菜单栏目

* (const QIcon & icon, const & text,

const * , const char * ,

const & = 0)

Qt 并没有专门的菜单项类,只是使用一个类,抽象出公共的动作。当我们把对象添加到菜单,就显示成一个菜单项,添加到工具栏,就显示成一个工具按钮。用户可以通过点击菜单项、点击工具栏按钮、点击快捷键来激活这个动作。

5.2 工具栏

主窗口的工具栏上可以有多个工具条,通常采用一个菜单对应一个工具条的的方式,也可根据需要进行工具条的划分。

.cpp:

#include "mainwindow.h"
#include
#include
#includeMainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{//重置窗口大小resize(800,400);//菜单栏创建 最多只能有一个QMenuBar *bar = menuBar();//将菜单栏放入到窗口中setMenuBar(bar);//创建菜单QMenu *fileMenu = bar->addMenu("文件");QMenu *editMenu = bar->addMenu("编辑");//创建菜单项QAction *newAction = fileMenu->addAction("新建");QAction *openAction = fileMenu->addAction("打开");//添加分隔符fileMenu->addSeparator();fileMenu->addAction("退出");//工具栏   可以有多个QToolBar * toolBar = new QToolBar(this);addToolBar(Qt::RightToolBarArea,toolBar);//后期设置,只允许左右停靠toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);toolBar->setFloatable(false);//设置移动(总开关)toolBar->setMovable(false);//工具栏中可以设置内容toolBar->addAction(newAction);//添加分割线toolBar->addSeparator();toolBar->addAction(openAction);//工具栏中添加控件QPushButton *btn = new QPushButton("按钮");toolBar->addWidget(btn);
}MainWindow::~MainWindow()
{
}

运行结果:

5.3 状态栏 5.4 铆接部件

铆接部件 ,也称浮动窗口,可以有多个。

QDockWidget * dock = new QDockWidget("标题",this);
addDockWidget(Qt::LeftDockWidgetArea,dock);
dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::TopDockWidgetArea);  设置区域范围

5.5 核心部件(中心部件)

除了以上几个部件,中心显示的部件都可以作为核心部件,例如一个记事本文件,可以利用做核心部件

* edit = new (this);

(edit);

5.6 资源文件

Qt 资源系统是一个跨平台的资源机制,用于将程序运行时所需要的资源以二进制的形式存储于可执行文件内部。如果你的程序需要加载特定的资源(图标、文本翻译等),那么,将其放置在资源文件中,就再也不需要担心这些文件的丢失。也就是说,如果你将资源以资源文件形式存储,它是会编译到可执行文件内部。

使用 Qt 可以很方便地创建资源文件。我们可以在工程上点右键,选择“添加新文件…”,可以在 Qt 分类下找到“Qt 资源文件”:

点击“选择…”按钮,打开“新建 Qt 资源文件”对话框。在这里我们输入资源文件的名字和路径:

点击下一步,选择所需要的版本控制系统,然后直接选择完成。我们可以在 Qt 的左侧文件列表中看到“资源文件”一项,也就是我们新创建的资源文件:

右侧的编辑区有个“添加”,我们首先需要添加前缀,比如我们将前缀取名为 。然后选中这个前缀,继续点击添加文件,可以找到我们所需添加的文件。这里,我们选择 -open.png 文件。当我们完成操作之后,Qt 应该是这样子的:

接下来,我们还可以添加另外的前缀或者另外的文件。这取决于你的需要。当我们添加完成之后,我们可以像前面一章讲解的那样,通过使用 : 开头的路径来找到这个文件。比如,我们的前缀是 /,文件是 -open.png,那么就可以使用://-open.png找到这个文件。

这么做带来的一个问题是,如果以后我们要更改文件名,比如将 -open.png 改成 .png,那么,所有使用了这个名字的路径都需要修改。所以,更好的办法是,我们给这个文件去一个“别名”,以后就以这个别名来引用这个文件。具体做法是,选中这个文件,添加别名信息:

这样,我们可以直接使用://doc-open引用到这个资源,无需关心图片的真实文件名。

如果我们使用文本编辑器打开 res.qrc 文件,就会看到一下内容:

​ 我们可以对比一下,看看 Qt 帮我们生成的是怎样的 qrc 文件。当我们编译工程之后,我们可以在构建目录中找到 .cpp 文件,这就是 Qt 将我们的资源编译成了 C++ 代码。

<RCC><qresource prefix="/images"><file alias="doc-open">document-open.png</file></qresource><qresource prefix="/images/fr" lang="fr"><file alias="doc-open">document-open-fr.png</file></qresource>
</RCC>

我们可以对比一下,看看 Qt 帮我们生成的是怎样的 qrc 文件。当我们编译工程之后,我们可以在构建目录中找到 .cpp 文件,这就是 Qt 将我们的资源编译成了 C++ 代码。

.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);
//    ui->actionnew->setIcon(QIcon("E:/qt_picture/Luffy.png"));//使用添加Qt资源": + 前缀名 + 文件名"ui->actionnew->setIcon(QIcon(":/new/prefix1/Image/down.png"));ui->actionopen->setIcon(QIcon(":/new/prefix1/Image/LuffyQ.png"));
}MainWindow::~MainWindow()
{delete ui;
}

运行效果图:

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了