1.未写入代码时窗口如下:
2.添加菜单栏前需要增加的头文件:
#include <QMenuBar>
3.创建菜单栏:
注意所创建的菜单栏是空菜单栏,也就是说创建之后,菜单栏上没有任何内容。
//创建一个空菜单栏,菜单栏只能有一个
QMenuBar *bar1=menuBar();
//将菜单栏放置于所创建的窗口上
setMenuBar(bar1);
4.在菜单栏上创建内容:
//创建菜单,添加内容到菜单栏上,FileMenu等为该菜单的返回值
QMenu *fileMenu=bar1->addMenu("File");
5.创建菜单项
//创建菜单项
fileMenu->addAction("新建");
fileMenu->addAction("打开");
fileMenu->addAction("退出");
6.添加分割线:
//添加分割线
fileMenu->addSeparator();
7.创建工具栏:
//创建工具栏
QToolBar *bar2=new QToolBar(this);
addToolBar(bar2);
8.改变工具栏的位置;
工具栏位置表示:
如:将工具栏置于左侧:
//设定工具栏的位置,如左侧,第二个参数为被设置的工具栏
addToolBar(Qt::LeftToolBarArea,bar2);
点击工具栏上方 … 处可以拖拽工具栏
设置工具栏不可拖拽:
//设置工具栏固定不可移动
bar2->setMovable(false);
该代码设置后工具栏无法拖拽。
设置允许停靠工具栏的位置;
//设置只允许工具栏在设定位置停靠,|表示“或”
bar2->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);
9.设置窗口是否可浮动:
//设置是否不可浮动,setFloatable参数为bool类型,默认可浮动
bar2->setFloatable(false);
可浮动时在非边缘会变成以下格式:
10.在工具栏中添加内容:
用QAction定义菜单栏中的菜单项,在工具栏中可以展示菜单项
//创建窗口中的选项
QAction *newAction=windMenu->addAction("新建");
windMenu->addSeparator();
QAction *stopAction=windMenu->addAction("关闭");
windMenu->addSeparator();
QAction *manageAction=windMenu->addAction("管理");
windMenu->addSeparator();
......
//在工具栏上添加内容
bar2->addAction(newAction);
bar2->addAction(stopAction);
bar2->addAction(manageAction);
在工具栏内添加控件:
用addWidget添加控件。
//在工具栏上添加控件
QPushButton *button1=new QPushButton("QP",this);
bar2->addWidget(button1);
11.设置状态栏
#include <QStatusBar>//状态栏头文件
.......
//创建状态栏,状态栏只能有一个
QStatusBar *statusBar1=new QStatusBar();
//将所创建的状态栏置于当前窗口上
setStatusBar(statusBar1);
12.在状态栏上添加内容:
添加标签控件:
//在状态栏上放置标签控件
QLabel *label1=new QLabel("2022年08月08日",this);
statusBar1->addWidget(label1);
使用addWidget添加控件时显示在左侧:
使用PermannentWidget时显示在右侧:
13.创建铆接部件并添加到窗口上:
//添加铆接部件(浮动窗口),可以有多个铆接部件
QDockWidget * dockWidget1=new QDockWidget("浮动窗口名称",this);
addDockWidget(Qt::LeftDockWidgetArea,dockWidget1);
铆接部件放置的位置
所创建出的浮动窗口:
浮动窗口可以移动:
设置停靠区域:
14.设置中心部件:
//设置中心部件
QTextEdit *textEdit1=new QTextEdit(this);
setCentralWidget(textEdit1);
所用总代码如下:
#include "mainwindow.h"
#include <QMenuBar>
#include <QToolBar>
#include <QtDebug>
#include <QPushButton>
#include <QStatusBar>
#include <QLabel>
#include <QDockWidget>
#include <QTextEdit>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
//重置窗口大小
resize(600,400);
//创建一个空菜单栏
QMenuBar *bar1=menuBar();
//将菜单栏放置于所创建的窗口上
setMenuBar(bar1);
//创建菜单,添加内容到菜单栏上,FileMenu等为该菜单的返回值
QMenu *fileMenu=bar1->addMenu("文件");
QMenu *edictMenu=bar1->addMenu("编辑");
QMenu *windMenu=bar1->addMenu("窗口");
//创建菜单项
fileMenu->addAction("新建");
//添加分割线
fileMenu->addSeparator();
fileMenu->addAction("打开");
fileMenu->addSeparator();
fileMenu->addAction("关闭");
fileMenu->addSeparator();
fileMenu->addAction("退出");
fileMenu->addSeparator();
edictMenu->addAction("粘贴");
edictMenu->addSeparator();
edictMenu->addAction("复制");
edictMenu->addSeparator();
edictMenu->addAction("全选");
edictMenu->addSeparator();
edictMenu->addAction("删除");
edictMenu->addSeparator();
edictMenu->addAction("撤销");
edictMenu->addSeparator();
//创建窗口中的选项
QAction *newAction=windMenu->addAction("新建");
windMenu->addSeparator();
QAction *stopAction=windMenu->addAction("关闭");
windMenu->addSeparator();
QAction *manageAction=windMenu->addAction("管理");
windMenu->addSeparator();
//创建工具栏,工具栏可以有多个
QToolBar *bar2=new QToolBar(this);
//设定工具栏的位置,如左侧,第二个参数为被设置的工具栏
addToolBar(Qt::LeftToolBarArea,bar2);
//设置工具栏固定不可移动
bar2->setMovable(false);
//设置只允许工具栏在设定位置停靠,|表示“或”
bar2->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);
//设置是否不可浮动,setFloatable参数为bool类型,默认可浮动
bar2->setFloatable(false);
//在工具栏上添加内容
bar2->addAction(newAction);
bar2->addAction(stopAction);
bar2->addAction(manageAction);
// //在工具栏上添加控件
// QPushButton *button1=new QPushButton("QP",this);
// bar2->addWidget(button1);
//创建状态栏,状态栏只能有一个
QStatusBar *statusBar1=new QStatusBar();
//将所创建的状态栏置于当前窗口上
setStatusBar(statusBar1);
//在状态栏上放置标签控件
QLabel *label1=new QLabel("2022年08月08日",this);
statusBar1->addWidget(label1);
QLabel *label2=new QLabel("星期一,15:36",this);
statusBar1->addPermanentWidget(label2);
//添加铆接部件(浮动窗口),可以有多个铆接部件
QDockWidget * dockWidget1=new QDockWidget("浮动窗口名称",this);
addDockWidget(Qt::LeftDockWidgetArea,dockWidget1);
//设置铆接部件停靠位置
dockWidget1->setAllowedAreas(Qt::TopDockWidgetArea|Qt::LeftDockWidgetArea);
//设置中心部件
QTextEdit *textEdit1=new QTextEdit(this);
setCentralWidget(textEdit1);
}
MainWindow::~MainWindow()
{
}
本篇笔记为B站学习后总结,侵删。