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 不可以(即不能超过窗口区域)

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()<<"执行加粗"<<endl;
}

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

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

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);//工作区不能移动不能浮动

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/317360.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构与算法之美学习笔记:47 | 向量空间:如何实现一个简单的音乐推荐系统?

这里写自定义目录标题 前言算法解析总结引申 前言 本节课程思维导图&#xff1a; 很多人都喜爱听歌&#xff0c;以前我们用 MP3 听歌&#xff0c;现在直接通过音乐 App 在线就能听歌。而且&#xff0c;各种音乐 App 的功能越来越强大&#xff0c;不仅可以自己选歌听&#xff0…

HBase 复制、备份、迁移

行业分享 HBase金融大数据乾坤大挪移 https://www.jianshu.com/p/cb4a645dd66a HBase跨机房迁移技术分享总结 https://www.jianshu.com/p/defc787b2704 dbaplus181期&#xff1a;腾讯金融HBase跨机房迁移实战 https://m.qlchat.com/topic/details?topicId2000003847589595 ht…

原生Jdbc获取库、表、字段;驼峰与下划线转换

1、获取catalog 1&#xff09;代码如下&#xff1a; /*** 获取catalog** param jdbcdriver 驱动类(DriverClass)(com.mysql.cj.jdbc.Driver)* param url 地址(jdbc:mysql://10.20.30.40:3306)* param username 用户名* param password 密码*/public static List&l…

[acm算法学习] 后缀数组SA

学习自B站up主 kouylan 定义 后缀是包含最后个字母的子串 把字符串 str 的所有后缀按字典排序&#xff0c;sa[i]表示排名为 i 的后缀的开头下标 如何求解SA 倍增的方法 先把每个位置开始的长度为1的子串排序&#xff0c;在此基础上再把长度为2的子串排序&#xff08;长度…

[足式机器人]Part2 Dr. CAN学习笔记-Advanced控制理论 Ch04-7 LQR控制器 Linear Quadratic Regulator

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-Advanced控制理论 Ch04-7 LQR控制器 Linear Quadratic Regulator 线性控制器设计-轨迹跟踪&#xff08;Fellow a Desired Path&#xff09;

软件测试|如何实现字典的键值互换,你会了吗?

简介 在Python中&#xff0c;字典是一种非常有用的数据结构&#xff0c;它将数据存储为键值对&#xff0c;并且键必须是唯一的。有时候&#xff0c;我们可能需要将字典的键和值互换&#xff0c;以便查找或操作数据更加方便。本文将详细介绍如何在Python中实现字典键值的互换操…

【Effective Objective - C】—— 熟悉Objective-C

【Effective Objective - C】—— 熟悉Objective-C 熟悉Objective-C1.oc的起源消息和函数的区别运行期组件和内存管理要点&#xff1a; 2.在类的头文件中尽量少引入其他头文件向前声明要点&#xff1a; 3.多使用字面量语法&#xff0c;少用与之等价的方法字符串字面量字面数值字…

AntDesignBlazor示例——暗黑模式

本示例是AntDesign Blazor的入门示例&#xff0c;在学习的同时分享出来&#xff0c;以供新手参考。 示例代码仓库&#xff1a;https://gitee.com/known/BlazorDemo 1. 学习目标 暗黑模式切换查找组件样式覆写组件样式 2. 添加暗黑模式切换组件 1&#xff09;双击打开MainL…

在CMake中自定义宏 add_definitions(-DDEBUG)

hehedalinux:~/Linux/loveDBTeacher-v6$ tree . ├── CMakeLists.txt └── test.c0 directories, 2 files hehedalinux:~/Linux/loveDBTeacher-v6$ test.c #include <stdio.h> #define NUMBER 3int main() {int a 10; #ifdef DEBUGprintf("我是一个程序猿,我…

驾驭未来:从传统运维到智能化运维的转型之路

随着科技的飞速发展&#xff0c;企业的业务需求也在不断变化。为了满足这些需求&#xff0c;企业的IT架构逐渐向云原生、容器化和微服务化演进。作为支撑企业业务发展的运维人员&#xff0c;我们需要紧跟时代步伐&#xff0c;不断提升自己的技能和认知水平。 在2023年全球运维大…

评估LLM在细胞数据上的实用性(3)-基因层面的评估

目录 定义基因功能预测扰动预测基因网络分析 基因层面的评估基因功能预测扰动预测基因网络分析 定义 基因功能预测 基因功能预测对于识别基因在不同条件下的特性非常重要。因为人类大约有20,000个蛋白质编码基因&#xff0c;只有一些被标注了功能。对基因功能的准确预测可以帮…

CMake在静态库中链接静态库

hehedalinux:~/Linux/multi-v2$ tree . ├── calc │ ├── add.cpp │ ├── CMakeLists.txt │ ├── div.cpp │ ├── mult.cpp │ └── sub.cpp ├── CMakeLists.txt ├── include │ ├── calc.h │ └── sort.h ├── lib │ ├── l…

【WEB API自动化测试】接口文档与在线测试

这一篇我们主要介绍如何做API帮助文档&#xff0c;给API的调用人员介绍各个 API的功能, 输入参数&#xff0c;输出参数, 以及在线测试 API功能(这个也是方便我们自己开发调试) 我们先来看看我们的API最终帮助文档及在线测试最终达到的效果: 概要图 GET API 添加产品API: 删除…

flutter使用get库管理路由,并设页面跳转动画和常见动画

get库还是非常强大的一个仓库&#xff0c;里面包含了非常常用的一些方法&#xff0c;比如路由管理&#xff0c;这是最常见和最常用的一个功能了&#xff0c;我们可以先配置一个路由对象&#xff0c;然后在里面配置路由列表&#xff0c;并且设置路由跳转方式。 第一种方式&…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷⑦

2023年全国职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项赛卷7 目录 需要竞赛软件包环境以及备赛资源可私信博主&#xff01;&#xff01;&#xff01; 2023年全国职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项赛卷7 模块一 …

jetson orin nano 使用yolov8导出engine

1. 导出onnx 经过前面训练&#xff0c;得到了best.pt模型&#xff0c;现在想要使用tensorrt进行推理&#xff0c;需要先导出为onnx格式&#xff0c;再转化为engine格式。 yolo export modelbest.pt formatonnx opset12 simplifyTrue2.解决错误 在导出过程中&#xff0c;可能…

postman 之 接口请求

一、前言 1. 安装 2. 主界面 3. 请求区域 Body下主要包含以下4中格式 form-data&#xff1a;混合表单&#xff0c;支持上传文件x-www-form-urlencoded&#xff1a;文本表单raw&#xff1a;原始格式&#xff0c;支持JSON/XML格式&#xff08;后面可选择&#xff09;binary&am…

Linux进阶课:目录(文件夹)与文件操作

1、ls与cat的区别是是什么&#xff1f; 答&#xff1a;ls命令的含义是list&#xff0c;显示当前目录中内容。不加参数时它显示当前目录中除隐藏文件外的所有文件及目录的名字。 cat命令是linux下的一个文本输出命令&#xff0c;通常是用于查看某个文件的内容的。 2、[abc]这个…

只不过孤岛罢了:我的2023年总结

2023已悄然过去&#xff0c;还记得跨年夜那天&#xff0c;我突然接到一星期要期末考的消息&#xff0c;我的内心是多么奔溃&#xff0c;先不说一天一门强度如此之高&#xff0c;重要的是矩阵论&#xff0c;工程优化等等科目&#xff0c;还要速成&#xff0c;于是麻木得预习一日…

Servlet-体系结构

一、思考 读者阅读完上一篇关于Servlet基本概念的文章后&#xff0c;我们知道每次实现一个Servlet&#xff0c;都需要覆盖五个接口&#xff0c;我们对除service接口外的其它四个接口&#xff0c;我们通常不会做什么处理。那么&#xff0c;这种实现方式是否有些繁琐呢&#xff…