QT学习笔记3

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


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 <QMenuBar>
#include <QMenu>
#include <QAction>
#include <QDebug>
#include <QToolBar>
#include <QStatusBar>
#include <QLabel>
#include <QPushButton>
#include <QDockWidget>
#include <QPixmap>
#include <QTextEdit>
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;
}
相关文章
|
11天前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 消息对话框QMessageBox
【Qt 学习笔记】Qt窗口 | 标准对话框 | 消息对话框QMessageBox
55 4
【Qt 学习笔记】Qt窗口 | 标准对话框 | 消息对话框QMessageBox
|
11天前
|
开发者
【Qt 学习笔记】Qt系统相关 | Qt事件 | 事件的介绍及基本概念
【Qt 学习笔记】Qt系统相关 | Qt事件 | 事件的介绍及基本概念
36 4
|
11天前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
71 4
|
11天前
|
数据安全/隐私保护
【Qt 学习笔记】Qt窗口 | 对话框 | 模态与非模态对话框的创建
【Qt 学习笔记】Qt窗口 | 对话框 | 模态与非模态对话框的创建
24 4
|
11天前
|
搜索推荐 C++
【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
15 4
|
11天前
|
API UED
【Qt 学习笔记】Qt窗口 | 状态栏 | QStatusBar的使用及说明
【Qt 学习笔记】Qt窗口 | 状态栏 | QStatusBar的使用及说明
35 4
|
11天前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 输入对话框QInputDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 输入对话框QInputDialog
24 3
|
11天前
|
数据可视化
【Qt 学习笔记】Qt窗口 | 标准对话框 | 字体对话框QFontDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 字体对话框QFontDialog
25 3
|
11天前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 颜色对话框QColorDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 颜色对话框QColorDialog
50 3
|
11天前
【Qt 学习笔记】Qt窗口 | 对话框 | Qt对话框的分类及介绍
【Qt 学习笔记】Qt窗口 | 对话框 | Qt对话框的分类及介绍
26 3