《Qt》part 10 Qt5.5 状态栏设置

2023-12-20 08:08
文章标签 设置 qt part 状态栏 qt5.5

本文主要是介绍《Qt》part 10 Qt5.5 状态栏设置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《Qt》part 10 Qt5.5 状态栏设置

1、普通的状态栏(statusBar)

         在程序的普通模式下,状态栏包括连个状态指示器:当前的操作指示,也用于显示状态提示和其他的一些临时消息。分为常规提示、状态提示、临时消息等。

void MainWindow::createStatusBar()
{locationLabel = new QLabel("W999");
locationLabel->setAlignment(Qt::AlignHCenter);
locationLabel->setMininumSize(locationLabel->sizeHint());formulaLabel = new QLabel;
formulaLabel->setIndent(3);statusBar()->addWidget(locationLabel);
statusBar->addWidget(formulaLabel,1);connect(spreadsheet,SIGNAL(currentCellChanged(int,int,int,int)),this,SLOT(updateStatusBar()));
connect(spreadsheet,SIGNAL(modified()),this,SLOT(spreadsheetModified()));
updateStatusBar();}

        QMainWindow::statusBar()函数返回一个指向状态栏的指针。[在第一次调用statusBar()函数的时候会创建状态栏。]状态栏只是器是一些简单的QLabel,可以在任何需要的时候改变它们的文本。已经在formulaLabel中添加了一个缩进格式,以便让那些在他里面显示的文本能够与它在左侧边有一个小的偏移量。当把这些QLabel添加到状态栏的时候,它们会自动被重定义为父对象,以便让它们成为状态栏的子对象。

         单元格定位指示器只需要非常小的空间,并且在重新定义窗口大小时,任何多余的空间都会分配给位于右侧的单元格公式指示器。这是通过在公式标签的statusBar->addWidget(formulaLabel,1)中调用了一个伸展因子实现的。位置指示器的默认伸展因子为0,这也就意味着它不被伸展,也就没有分隔符那种效果。

          当 QStatusBar摆放这些指示器窗口部件时,它会尽量考虑由QWidget::sizeHint()提供的每一个窗口部件的理想大小,然后再对那些可伸展的任意窗口部件进行伸展以填满全部可用空间。一个窗口部件的理想大小取决于这个窗口部件的内容及改变内容时变化的大小。为了避免对定位指示器连续不断地重定义大小,设置它的最小尺寸大小为它能包含的最大数字符(“W999”)和一些空格的总大小。还把它的对齐方式设置为Qt::AlignHCenter,以便可以在水平方向上居中对齐它的文本。

在函数结尾的附近,将函数的信号槽函数连接起来。

        updateStatusBar()槽可以更新单元格定位指示器和单元格公式指示器。只要用户把单元格光标移动到一个新的单元格,这个槽就会得到调用。该槽也可以作为一个普通函数而在createStatusBar()的最后用于初始化这些指示器。因为SpreadSheet不会再一开始的时候就发射currentCellChanged()消息,所以还必须这样做。

void MainWindow::spreadsheetModified()
{
setWindowModified(true);
updateStatusBar();
}
            

            spreadsheetModified()槽把windowModifed属性设置为true,用以更新标题栏。这个函数也会更新位置和公式指示器,以便可以让它们反映事件的当前状态。

2、QDockWidget 和 QTreeWidget 树形部件 构成树形选择项

QTreeWidget *treeWidget = new QTreeWidget; //创建树形控件 QStringList headers; //树头 
headers << "Name" << "Number"; 
treeWidget->setHeaderLabels(headers); QStringList rootTextList; //树的根节点 
rootTextList << "Root" << "0"; //添加选项 Root --- 0 
QTreeWidgetItem *root = new QTreeWidgetItem(treeWidget, rootTextList); 
new QTreeWidgetItem(root, QStringList() << QString("Leaf 1") << "1"); //以根节点为父控件,添加选项 Leaf1 ---- 1 
QTreeWidgetItem *leaf2 = new QTreeWidgetItem(root, 
QStringList() << QString("Leaf 2") << "2"); //以根节点为父控件,添加选项 Leaf2 ---- 2 
leaf2->setCheckState(0, Qt::Checked); //为Leaf2 设置勾选窗 QList<QTreeWidgetItem *> rootList; 
rootList << root; 
treeWidget->insertTopLevelItems(0, rootList); //将树形选项 添加入Tree控件 QDockWidget *dockWidget = new QDockWidget(tr("dockWidget")); //创建锚接部件 
dockWidget->setObjectName("dockWidget test"); 
dockWidget->setAllowedAreas(Qt::RightDockWidgetArea | Qt::LeftDockWidgetArea); //锚接部件 允许停靠的区域,左右 
dockWidget->setWidget(treeWidget); //设置锚接部件的内容 TreeWidget 
addDockWidget(Qt::RightDockWidgetArea, dockWidget); 

效果:



3、利用treeWidget、treeWidgetItem、dockWidget定制状态栏


这篇关于《Qt》part 10 Qt5.5 状态栏设置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/515318

相关文章

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

uniapp设置微信小程序的交互反馈

链接:uni.showToast(OBJECT) | uni-app官网 (dcloud.net.cn) 设置操作成功的弹窗: title是我们弹窗提示的文字 showToast是我们在加载的时候进入就会弹出的提示。 2.设置失败的提示窗口和标签 icon:'error'是设置我们失败的logo 设置的文字上限是7个文字,如果需要设置的提示文字过长就需要设置icon并给

【QT】基础入门学习

文章目录 浅析Qt应用程序的主函数使用qDebug()函数常用快捷键Qt 编码风格信号槽连接模型实现方案 信号和槽的工作机制Qt对象树机制 浅析Qt应用程序的主函数 #include "mywindow.h"#include <QApplication>// 程序的入口int main(int argc, char *argv[]){// argc是命令行参数个数,argv是

Python QT实现A-star寻路算法

目录 1、界面使用方法 2、注意事项 3、补充说明 用Qt5搭建一个图形化测试寻路算法的测试环境。 1、界面使用方法 设定起点: 鼠标左键双击,设定红色的起点。左键双击设定起点,用红色标记。 设定终点: 鼠标右键双击,设定蓝色的终点。右键双击设定终点,用蓝色标记。 设置障碍点: 鼠标左键或者右键按着不放,拖动可以设置黑色的障碍点。按住左键或右键并拖动,设置一系列黑色障碍点

Tomcat性能参数设置

转自:http://blog.csdn.net/chinadeng/article/details/6591542 Tomcat性能参数设置 2010 - 12 - 27 Tomcat性能参数设置 博客分类: Java Linux Tomcat 网络应用 多线程 Socket 默认参数不适合生产环境使用,因此需要修改一些参数   1、修改启动时内存参数、并指定J

使用Qt编程QtNetwork无法使用

使用 VS 构建 Qt 项目时 QtNetwork 无法使用的问题 - 摘叶飞镖 - 博客园 (cnblogs.com) 另外,强烈建议在使用QNetworkAccessManager之前看看这篇文章: Qt 之 QNetworkAccessManager踏坑记录-CSDN博客 C++ Qt开发:QNetworkAccessManager网络接口组件 阅读目录 1.1 通用API函数

Level3 — PART 3 — 自然语言处理与文本分析

目录 自然语言处理概要 分词与词性标注 N-Gram 分词 分词及词性标注的难点 法则式分词法 全切分 FMM和BMM Bi-direction MM 优缺点 统计式分词法 N-Gram概率模型 HMM概率模型 词性标注(Part-of-Speech Tagging) HMM 文本挖掘概要 信息检索(Information Retrieval) 全文扫描 关键词

Qt多语种开发教程

Qt作为跨平台的开发工具,早已应用到各行各业的软件开发中。 今天讲讲,Qt开发的正序怎么做多语言开发。就是说,你设置中文,就中文显示;设置英语就英文显示,设置繁体就繁体显示,设置发育就显示法语等。 开发环境(其实多语种这块根环境没太大关系):win10,Qt.5.12.10 一.先用QtCreator创建一个简单的桌面程序 1.工程就随便命名“LanguageTest”,其他默认。 2.在设计师

MySQL record 02 part

查看已建数据库的基本信息: show CREATE DATABASE mydb; 注意,是DATABASE 不是 DATABASEs, 命令成功执行后,回显的信息有: CREATE DATABASE mydb /*!40100 DEFAULT CHARACTER SET utf8mb3 / /!80016 DEFAULT ENCRYPTION=‘N’ / CREATE DATABASE myd