QToolBar、QStatusBar和QDockWidget的使用

news2024/9/24 8:30:15

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于NLP的恶意网页识别

基于NLP的恶意网页识别 基于NLP的恶意网页识别引言项目目录回顾优化HTML标签提取结果使用预训练模型Fine-tune数据处理和模型训练模型训练与评估模型导出部署与预测总结 基于NLP的恶意网页识别 引言 欢迎阅读《 基于NLP的恶意网页识别》&#xff0c;在前三篇中&#xff0c;我…

如何保证数据库和缓存双写一致性-----一篇足以

保证数据库和缓存双写一致性的必要性和优点在于确保系统数据的准确性和可靠性。通过双写一致性机制&#xff0c;系统可以防止因为缓存数据与数据库数据不一致而导致的业务错误。这种做法有效降低了系统的脆弱性&#xff0c;提高了数据的完整性。同时&#xff0c;通过缓存加速读…

AI智能分析网关V4烟火检测算法解决方案

一、背景需求 根据国家消防救援局公布的数据显示&#xff0c;2023年共接报处置各类警情213.8万起&#xff0c;督促整改风险隐患397万处。火灾危害巨大&#xff0c;必须引起重视。传统靠人工报警的方法存在人员管理难、场地数量多且分散等问题&#xff0c;无法有效发现险情降低…

部署Tomcat及其负载均衡

简介 在前面已经学习了Nginx服务器的安装配置&#xff0c;本章主要采用案例课的形式介绍Tomcat及NginxTomcat负载均衡群集。Tomcat案例首先介绍其应用场景&#xff0c;然后重点介绍Tomcat的安装配置&#xff0c;NginxTomcat负载均衡群集案例是应用于生产环境下的一套可靠的Web站…

牛仔行头目标检测竞赛 李沐老师Kaggle(有代码有注释)

一、比赛地址 CowBoy Outfits Detection | Kaggle 二、数据介绍 这次比赛的数据集一共有4879个image&#xff0c;需要自己划分训练集和验证集。annotation的格式是json&#xff0c;因此如果用yolo系列的算法会涉及到json2txt这一步。当然如果不用yolo系列的就不要这段代码了。…

[vivado ] report_utilization -name

可以Open Synthesiezed或 Implementation 后的Design使用下面的命令&#xff0c;一定要加-name这个option, 后面的utilization_1可以可以自定义。 report_utilization -name utilization_1

【Python机器学习】分类器的不确定估计——预测概率

predict_proba的输出是每个类别的概率&#xff0c;通常比decision_function的输出更容易理解&#xff0c;对于二分类问题&#xff0c;它的形状始终是(n_samples,2)。 import mglearn.tools from sklearn.ensemble import GradientBoostingClassifier from sklearn.datasets im…

从DETR到Mask2Former(3):masked attention的attention map可视化

Mask2Former的论文中有这样一张图&#xff0c;表示masked attenion比cross attention效果要好 那么这个attention map是怎么画出来的&#xff1f; 在mask2attention的源代码中 CrossAttentionLayer这个类中&#xff0c;在forward_post函数中做如下修改&#xff1a; def forwar…

轴组【CAN】

如果有126个轴&#xff0c;你程序里挨个添加轴很麻烦。 可以用轴组批量添加。【数组】 CAN驱动器 0x164 就是下个驱动器 p_CAN主站地址:ADR(IoConfig_Globals.CANopen_Manager_SoftMotion);p_CAN从站地址1:ADR(IoConfig_Globals.DMA882_CAN);p_CAN从站地址2:ADR(IoConfig_Gl…

重磅!OpenAI正式发布,自定义ChatGPT商店!

1月11日凌晨&#xff0c;OpenAI在官网正式发布了&#xff0c;自定义GPT商店&#xff0c;可以帮助用户找到目前最好用、流行的自定义ChatGPT助手。 在2024年第一季度&#xff0c;OpenAI将启动GPT 开发者收入计划。首先&#xff0c;美国地区的开发者将根据用户对其 GPT 的使用情…

HTML--超链接

超链接 作用&#xff1a;点击跳转到相应位置 a标签 语法&#xff1a; <a href"链接地址">文本或图片</a>范例&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"utf-8"/><title>跳转到百度</t…

蓝桥杯单片机进阶教程4——需要分配进程的模块

前言&#xff1a; 【蓝桥杯单片机保姆级教学】 https://www.bilibili.com/video/BV1h3411m7Aw/?p117&share_sourcecopy_web&vd_sourcec4fc67867c5218768e783d04475bc5a2 P117-118 比赛的时候也按照这个顺序来写 一、数码管显示 分析考题 &#xff08;1&#xff09;…

大文件上传切片上传

大文件上传&切片上传 简历中如何写项目经验&技术 切片上传相关面试题 基础实现流程 实现核心&#xff1a;秒传 断点续传 切片 …… 如何实现的 最基本的视图 加上拖拽 加上拖拽事件。监听drop事件&#xff0c;event.dataTransfer.files文件对象。其他dragenter dragove…

odoo17基础培训1-odoo开发基础知识准备以及odoo17开发环境安装

odoo17基础培训 一、odoo开发基础知识准备以及odoo17开发环境安装 1、odoo是什么&#xff1f; 当我介绍客户使用odoo系统作为业务管理平台时&#xff0c;有时会被问到Odoo是什么&#xff1f; 简单点&#xff0c;可以这么说&#xff1a; Odoo是一套完整的系统&#xff0c;是…

Pycharm安装numpy库失败解决办法

一、出现错误&#xff08;以matplotlib为例&#xff09;&#xff1a; 二、解决办法&#xff1a; 方法一&#xff08;失败&#xff09;&#xff1a;PyCharm中有一个安装库的方法是&#xff1a;Settings>>Python Interpreter>>点击右侧的加号 第二个图 失败原因&am…

【开源】基于JAVA语言的固始鹅块销售系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 鹅块类型模块2.3 固始鹅块模块2.4 鹅块订单模块2.5 评论管理模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 鹅块类型表3.2.2 鹅块表3.2.3 鹅块订单表3.2.4 鹅块评论表 四、系统展示五、核心代码5.…

x-cmd pkg | jless - 受 Vim 启发的命令行 JSON 查看器

目录 简介首次用户功能特点类似工具与竞品进一步探索 简介 jless 是一个命令行 JSON 查看器&#xff0c;设计用于读取、探索和搜索 JSON 数据。可以使用它来替代 less 、 jq 、 cat 以及您当前用于查看 JSON 文件的编辑器的任何组合。它是用 Rust 编写的&#xff0c;可以作为单…

确保CentOS系统中的静态HTTP服务器的数据安全

确保CentOS系统中的静态HTTP服务器的数据安全是一项重要的任务&#xff0c;它有助于保护网站免受未经授权的访问、数据泄露和其他安全威胁。以下是一些关键步骤和最佳实践&#xff0c;以确保CentOS系统中静态HTTP服务器的数据安全&#xff1a; 限制访问权限确保只有授权用户可…

Python爬虫---scrapy shell 调试

Scrapy shell是Scrapy提供的一个交互式shell工具&#xff0c;它可以帮助我们进行爬虫的开发和调试。可以使用它来测试xpath或css表达式&#xff0c;查看它们是如何工作的&#xff0c;以及它们从你试图抓取的网页中提取的数据。它允许你在编写spider时交互地测试表达式&#xff…

JFinal学生信息管理系统

JFinal学生信息管理系统 项目地址&#xff1a;mendianyu/StudentManage: JFinal学生信息管理系统 (github.com) 环境介绍&#xff1a; IDE&#xff1a;IDEA 2021.2.3 jdk:1.8 maven:3.6.3 项目介绍&#xff1a;JFinal框架实现的学生信息管理系统&#xff0c;完成简单的学生信…