QT学习笔记3

一.创建工具栏

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);
//设置可停靠位置(左右可停靠)

QT学习笔记3_第1张图片

QT学习笔记3_第2张图片

this->addToolBar(Qt::LeftToolBarArea,qtboolbar);
//添加时可以设置初始停靠位置

二.创建状态栏(有且只有一个)

1.创建状态栏QStatusBar:

 QStatusBar *qutatubar=new QStatusBar(this);
 QStatusBar *qutatubar=statusBar();
//两种方式
 this->setStatusBar(qutatubar);
//显示

2.状态栏信息分类

QT学习笔记3_第3张图片

(1)临时状态信息:

 qutatubar->showMessage("页面显示成功",3000);
//后面为时间

(2)正式状态信息:

    QLabel *qlable=new QLabel("作者",this);
    qutatubar->addWidget(qlable);
    //增加正式信息(一般位于状态栏左侧)

(3)永久状态信息:

QLabel *qlable2=new QLabel("作者",this);
qutatubar->addPermanentWidget(qlable2);
//增加正式信息(一般位于状态栏右侧)

3.铆接部件 浮动窗口(可以多个)QDockWidget

QT学习笔记3_第4张图片

 (1)创建铆接部件:

    QDockWidget *qdweight=new QDockWidget(this);
    this->addDockWidget(Qt::RightDockWidgetArea,qdweight);
    //第一个参数是在哪一边创建
    //创建铆接部件

4.中心部件:

QT学习笔记3_第5张图片

 QTextEdit *edit=new  QTextEdit("文本编辑器",this);
 this->setCentralWidget(edit);
//创建文本编辑器当做中心部件

4.资源文件:

QT学习笔记3_第6张图片

 加载图片:

QT学习笔记3_第7张图片

先创建一个资源;

QT学习笔记3_第8张图片

1)  给菜单项加载图片

QT学习笔记3_第9张图片

 QT学习笔记3_第10张图片

 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);

经过不懈努力我的页面变成了这样:

QT学习笔记3_第11张图片

#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;
}

你可能感兴趣的:(qt,c++,学习)