一.创建工具栏
1.创建工具栏(可以多个)QToolbar:
QToolBar *qtboolbar=new QToolBar(this);
//穿件工具栏
this->addToolBar(qtboolbar);
//在窗口显示
2.QAction类:充当子工具(工具箱)
QAction *tool1=new QAction("运行");
QAction *tool2=new QAction("调试");
QAction *tool3=new QAction("编译");
qtboolbar->addAction(tool1);
qtboolbar->addAction(tool2);
qtboolbar->addAction(tool3);
//添加到工具栏中
3.工具栏设置
//修改工具栏不可移动
qtboolbar->setMovable(false);
//设置不可浮空
qtboolbar->setFloatable(false);
qtboolbar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);
//设置可停靠位置(左右可停靠)
this->addToolBar(Qt::LeftToolBarArea,qtboolbar);
//添加时可以设置初始停靠位置
二.创建状态栏(有且只有一个)
1.创建状态栏QStatusBar:
QStatusBar *qutatubar=new QStatusBar(this);
QStatusBar *qutatubar=statusBar();
//两种方式
this->setStatusBar(qutatubar);
//显示
2.状态栏信息分类:
(1)临时状态信息:
qutatubar->showMessage("页面显示成功",3000);
//后面为时间
(2)正式状态信息:
QLabel *qlable=new QLabel("作者",this);
qutatubar->addWidget(qlable);
//增加正式信息(一般位于状态栏左侧)
(3)永久状态信息:
QLabel *qlable2=new QLabel("作者",this);
qutatubar->addPermanentWidget(qlable2);
//增加正式信息(一般位于状态栏右侧)
3.铆接部件 浮动窗口(可以多个)QDockWidget
(1)创建铆接部件:
QDockWidget *qdweight=new QDockWidget(this);
this->addDockWidget(Qt::RightDockWidgetArea,qdweight);
//第一个参数是在哪一边创建
//创建铆接部件
4.中心部件:
QTextEdit *edit=new QTextEdit("文本编辑器",this);
this->setCentralWidget(edit);
//创建文本编辑器当做中心部件
4.资源文件:
加载图片:
先创建一个资源;
1) 给菜单项加载图片
QPixmap pix;
//创建图片控件
pix.load(":/open");
//选择图片
tool1->setIcon(QIcon(pix));
//给tool1添加图标
2)增加背景图片
this->setAutoFillBackground(true);
//允许背景图片
QPixmap pix1= QPixmap(":/image/2efe.jpg").scaled(this->size());
QPalette Palette;
Palette.setBrush(QPalette::Background,QBrush(pix1));
this->setPalette(Palette);
经过不懈努力我的页面变成了这样:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
resize(800,600);
ui->setupUi(this);
// QMenuBar *menubar=new QMenuBar(this);
QMenuBar *menubar=menuBar();
//创建菜单栏
this->setMenuBar(menubar);
//创建菜单
QMenu *menu1=new QMenu("文件");
QMenu *menu2=new QMenu("编辑");
QMenu *menu3=new QMenu("构建");
QMenu *menu4=new QMenu("调试");
QMenu *menu5=new QMenu("Analyze");
QMenu *menu6=new QMenu("工具");
QMenu *menu7=new QMenu("控件");
QMenu *menu8=new QMenu("帮助");
menubar->addMenu(menu1);
menubar->addMenu(menu2);
menubar->addMenu(menu3);
menubar->addMenu(menu4);
menubar->addMenu(menu5);
menubar->addMenu(menu6);
menubar->addMenu(menu7);
menubar->addMenu(menu8);
QAction *act1=new QAction("新建文件");
QAction *act2=new QAction("打开文件");
QAction *act3=new QAction("另存为");
QAction *act4=new QAction("关闭");
QAction *act5=new QAction("最近访问文件");
QAction *act6=new QAction("保存文件");
QAction *act7=new QAction("打印");
QAction *act8=new QAction("退出");
menu1->addAction(act1);
menu1->addAction(act2);
menu1->addAction(act3);
menu1->addAction(act4);
menu1->addAction(act5);
menu1->addAction(act6);
menu1->addAction(act7);
menu1->addAction(act8);
connect(act1,&QAction::triggered,[=](){qDebug()<<"已新建文件";});
connect(act2,&QAction::triggered,[=](){qDebug()<<"已打开文件";});
connect(act3,&QAction::triggered,[=](){qDebug()<<"已另存为文件";});
connect(act4,&QAction::triggered,this,&MainWindow::close);
connect(act5,&QAction::triggered,[=](){qDebug()<<"最近访问文件";});
connect(act6,&QAction::triggered,[=](){qDebug()<<"已保存文件";});
connect(act7,&QAction::triggered,[=](){qDebug()<<"打印文件";});
connect(act8,&QAction::triggered,[=](){qDebug()<<"退出";});
QToolBar *qtboolbar=new QToolBar(this);
//穿件工具栏
this->addToolBar(Qt::LeftToolBarArea,qtboolbar);
//在窗口显示
QAction *tool1=new QAction("运行");
QAction *tool2=new QAction("调试");
QAction *tool3=new QAction("编译");
qtboolbar->addAction(tool1);
qtboolbar->addAction(tool2);
qtboolbar->addAction(tool3);
connect(tool1,&QAction::triggered,[=](){qDebug()<<"已运行";});
connect(tool2,&QAction::triggered,[=](){qDebug()<<"已调试";});
connect(tool3,&QAction::triggered,[=](){qDebug()<<"已编译";});
//修改工具栏不可移动
// qtboolbar->setMovable(false);
//设置不可浮空
qtboolbar->setFloatable(false);
qtboolbar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);
QStatusBar *qutatubar=new QStatusBar(this);
this->setStatusBar(qutatubar);
//创建状态栏
//增加临时信息(一般位于左侧)
QLabel *qlable=new QLabel("作者:xxx",this);
qutatubar->addWidget(qlable);
//增加正式信息(一般位于状态栏左侧)、
QLabel *qlable2=new QLabel("2023/4/15",this);
qutatubar->addPermanentWidget(qlable2);
//增加正式信息(一般位于状态栏右侧)
QPushButton *butten_1=new QPushButton("设置",this);
qutatubar->addWidget(butten_1);
QDockWidget *qdweight=new QDockWidget("first",this);
this->addDockWidget(Qt::RightDockWidgetArea,qdweight);
//创建铆接部件
QTextEdit *edit=new QTextEdit("文本编辑器",this);
this->setCentralWidget(edit);
QPixmap pix;
//创建图片控件
pix.load(":/open");
//选择图片
tool1->setIcon(QIcon(pix));
//给tool1添加图标
this->setAutoFillBackground(true);
//允许背景图片
QPixmap pix1= QPixmap(":/image/2eff5679d4f652f85dfbae7539ff244e.jpg").scaled(this->size());
QPalette Palette;
Palette.setBrush(QPalette::Background,QBrush(pix1));
this->setPalette(Palette);
}
MainWindow::~MainWindow()
{
delete ui;
}