QToolBar、QStatusBar和QDockWidget的使用

1. 工具栏 QToolBar

1.1 创建工具栏

1.1.1 工具栏的基本函数

设置工具栏的停靠区域  参数

Qt::LeftToolBarArea  //左边
Qt::RightToolBarArea  //右边
Qt::TopToolBarArea //顶部
Qt::BottomToolBarArea  //底部
Qt::AllToolBarAreas  //所有区域
Qt::NoToolBarArea //没有

QMainWindow

mainwindow.h

//实例化工具栏
    QToolBar* toolBar = new QToolBar;
    //实例化执行动作
    QAction* action3 = new QAction();
    //实例化按钮
    QPushButton* btn1 = new QPushButton("按钮1");
    QPushButton* btn2 = new QPushButton("按钮2");
    QPushButton* btn3 = new QPushButton("按钮3");
    //实例化组合框
    QComboBox* comboBox = new QComboBox(this);

    //实例化另一个工具栏
    QToolBar* toolBar1 = new QToolBar;

mainwindow.cpp

//工具栏的使用********************************************************************
    //添加一个工具栏
    this->addToolBar(this->toolBar);
    //在添加一个工具栏
//    this->addToolBar(this->toolBar1);

    //向工具栏添加一些工具  即执行动作(工具栏只能添加执行动作)
    this->action3 = this->toolBar->addAction("加粗");//注意这里设置了返回值
    this->toolBar->addAction("下划线");
    this->toolBar->addAction("缩小");

    //工具栏一样可以添加控件
    this->btn1->setFlat(true);//隐藏按钮的边框
    this->toolBar->addWidget(this->btn1);//向工具栏添加按钮

    this->btn2->setFlat(true);//隐藏按钮的边框
    this->toolBar->addWidget(this->btn2);//向工具栏添加按钮

    //向工具栏添加组合框
    QStringList list;
    list<<"星期一"<<"星期二";
    this->comboBox->addItems(list);
    this->toolBar->addWidget(this->comboBox);//添加进工具栏

    //在指定位置之前插入按钮
    this->btn3->setFlat(true);//隐藏按钮的边框
    this->toolBar->insertWidget(this->action3,this->btn3);

    //设置工具栏的允许停靠的区域
    this->toolBar->setAllowedAreas(Qt::RightToolBarArea);//允许停靠右边

    //设置工具栏是否可移动
    this->toolBar->setMovable(true);//默认可移动

    //设置工具栏是否可浮动
    this->toolBar->setFloatable(false);//true 可以  false 不可以(即不能超过窗口区域)

QToolBar、QStatusBar和QDockWidget的使用_第1张图片

1.2 执行动作

QMainWindow

mainwindow.cpp

绑定

 //给加粗 执行动作 绑定信号
    connect(this->action3,SIGNAL(triggered()),this,SLOT(add_cu()));
    //给按钮绑定信号(放在工具栏中的控件也不影响他的信号)
    connect(this->btn1,SIGNAL(clicked()),this,SLOT(add_cu()));

定义

QMainWindow

mainwindow.h

public slots://执行一个动作的槽

    //工具栏的
    void add_cu();//加粗

实现

mainwindow.cpp


void MainWindow::add_cu(){
    qDebug()<<"执行加粗"<

QToolBar、QStatusBar和QDockWidget的使用_第2张图片

2. 状态栏 QStatusBar

2.1 创建状态栏

2.1.1 状态栏的基本函数

QMainWindow

mainwindow.h

//状态栏
    QPushButton* btn4 = new QPushButton("100%");
    QPushButton* btn5 = new QPushButton("UTF-8");
    QPushButton* btn6 = new QPushButton("第1行 第5列");

mainwindow.cpp

//状态栏 QStatusBar的应用************************************************************
    //设置右下角是否有斜三角网格
    ui->statusbar->setSizeGripEnabled(false);//false没有

    //向状态栏添加基本控件
    //方法1
    this->btn4->setFlat(true);//隐藏按钮的边框
    ui->statusbar->addWidget(this->btn4);
    //方法2
    statusBar()->addWidget(this->btn4);

    //设置位置
    this->btn5->setFlat(true);
    ui->statusbar->addPermanentWidget(this->btn5);//设置到右边
    this->btn6->setFlat(true);
    ui->statusbar->addPermanentWidget(this->btn6);//设置到右边

    //显示加载信息状态
    ui->statusbar->showMessage("记事本加载中....",5000);
    //清除显示的加载信息状态
    ui->statusbar->clearMessage();

QToolBar、QStatusBar和QDockWidget的使用_第3张图片

2.2 信号:

 void messageChanged(const QString &message)//消息变化时触发该信号

3. 工作区 QDockWidget

3.1 创建工作区

3.1.1 实例化纯文本编辑框

QMainWindow

mainwindow.h

//实例化纯文本编辑框
    QPlainTextEdit* plainTextEdit = new QPlainTextEdit;

mainwindow.cpp

//工作区的使用 QDockWidget*************************************************************
    //向中心工作区中添加纯文本编辑框
    this->setCentralWidget(this->plainTextEdit);

QToolBar、QStatusBar和QDockWidget的使用_第4张图片

3.1.2 工作区基本函数

添加工作区的位置 参数

Qt::LeftDockWidgetArea//左边
Qt::RightDockWidgetArea//右边
Qt::TopDockWidgetArea//顶部
Qt::BottomDockWidgetArea//底部
Qt::AllDockWidgetAreasDock//所有
Qt::NoDockWidgetArea//没有

是否可移动、可关闭和可浮动

QDockWidget::DockWidgetClosable //可以关闭dock小部件
QDockWidget::DockWidgetMovable //可以移动小部件
QDockWidget::DockWidgetFloatable //小部件可以从主窗口分离出来,并作为一个独立的窗口浮动
QDockWidget::DockWidgetVerticalTitleBar//小部件在左侧显示一个垂直的标题栏。这可以用来增加QMainWindow中的垂直空间
QDockWidget::AllDockWidgetFeatures //可以关闭、移动和浮动
QDockWidget::NoDockWidgetFeatures //不能关闭、移动或浮动

QMainWindow

mainwindow.h

//工作区
    //实例化纯文本编辑框
    QPlainTextEdit* plainTextEdit = new QPlainTextEdit;

    //实例化工作区
    QDockWidget* dockWidget = new QDockWidget(this);

    //实例化组合框
    QComboBox* comboBox2 = new QComboBox(this);

mainwindow.cpp

//工作区的使用 QDockWidget*************************************************************
    //向中心工作区中添加纯文本编辑框
    this->setCentralWidget(this->plainTextEdit);

//    //添加一个工作区
    this->addDockWidget(Qt::RightDockWidgetArea,this->dockWidget);//在右边添加

    //向工作区添加控件
    QStringList list2;
    list2<<"星期三"<<"星期四";
    this->comboBox2->addItems(list2);
    this->dockWidget->setWidget(this->comboBox2);

    //设置工作区允许停靠的区域
    this->dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea);//允许左边区域

    //设置是否可浮动
//    this->dockWidget->setFloating(true);

    //是否可移动、可关闭和可浮动
//    this->dockWidget->setFeatures(QDockWidget::NoDockWidgetFeatures);//工作区不能移动不能浮动

QToolBar、QStatusBar和QDockWidget的使用_第5张图片

你可能感兴趣的:(Qt,Qt,c++,c语言)