5.1 菜单栏

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)

5.1 菜单栏

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