Qt:QStatusBar 和 QProgressBar 详细讲解(源码下载)

2023-10-08 18:08

本文主要是介绍Qt:QStatusBar 和 QProgressBar 详细讲解(源码下载),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

知识准备:


QStatusBar Class:提供一个水平的横条,显示当前的状态信息。


QStatusBar Class

The QStatusBar class provides a horizontal bar suitable for presenting status information.More...


Header:

#include <QStatusBar>

qmake:

QT += widgets

Inherits:

QWidget


QProgressBar:进度条,用于显示一个水平或者垂直的进度条。

The QProgressBar widget provides a horizontal or vertical progress bar.More...


Header:

#include <QProgressBar>

qmake:

QT += widgets

Inherits:

QWidget


在最近的工作中,客户提了一个需求:在状态栏显示当前程序的进度条。

实现方法很简单,直接调用QStatusBar Class的成员函数void QStatusBar::addPermanentWidget(QWidget *widget, int stretch = 0)即可。

下面使用一个程序,来讲解QProgressBar和QStatusBar的用法。


实例:

效果图:



实现步骤:


1、新建Qt GUI应用程序,基类选择QMainWindow。

2、在程序的界面文件中,拖拽出如下控件。



3、各文件代码如下:



main.cpp

#include "mainwindow.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();private slots:void on_actionInformation_triggered();private:Ui::MainWindow *ui;
};#endif // MAINWINDOW_H


mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QString>
#include <QLabel>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);ui->horizontalSlider->setStatusTip(QString::fromLocal8Bit("Information"));ui->progressBar->setStatusTip("ProgressBar1");ui->progressBar->setRange(0,100);ui->progressBar->setValue(0);ui->progressBar_2->setStatusTip("ProgressBar2");ui->progressBar_2->setRange(0,100);ui->progressBar_2->setValue(0);QLabel *label = new QLabel("ProgressBar4");ui->statusBar->addPermanentWidget(label);   //将label标签放置到任务栏ui->statusBar->addPermanentWidget(ui->progressBar_3);   //将进度条放置到任务栏ui->progressBar_3->setStatusTip("ProgressBar3");ui->progressBar_3->setRange(0,100);ui->progressBar_3->setValue(0);connect(ui->horizontalSlider,SIGNAL(valueChanged(int)),ui->progressBar_3,SLOT(setValue(int)));
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_actionInformation_triggered()
{ui->statusBar->showMessage("提示", 1000);
}


代码功能总结:

 ui->horizontalSlider->setStatusTip(QString("Information"));  

:设置触发水平滑块时,状态栏显示的提示信息。


 ui->progressBar->setStatusTip(tr("ProgressBar1"));

:设置鼠标滑过进度条时,状态栏显示的提示信息。


 ui->progressBar->setRange(0,100); 

:设置进度条的范围。


 ui->progressBar->setValue(0); 

:设置进度条当前值。


QLabel *label = new QLabel("ProgressBar4");
ui->statusBar->addPermanentWidget(label);   

:将label标签放置到任务栏


ui->statusBar->addPermanentWidget(ui->progressBar_3);

: 将进度条放置到任务栏


ui->statusBar->showMessage("提示", 1000);  

:设置状态栏提示显示的内容和时间。(时间单位:毫秒)



源码下载地址:

http://download.csdn.net/detail/rl529014/9575511

这篇关于Qt:QStatusBar 和 QProgressBar 详细讲解(源码下载)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

MySql match against工具详细用法

《MySqlmatchagainst工具详细用法》在MySQL中,MATCH……AGAINST是全文索引(Full-Textindex)的查询语法,它允许你对文本进行高效的全文搜素,支持自然语言搜... 目录一、全文索引的基本概念二、创建全文索引三、自然语言搜索四、布尔搜索五、相关性排序六、全文索引的限制七

python中各种常见文件的读写操作与类型转换详细指南

《python中各种常见文件的读写操作与类型转换详细指南》这篇文章主要为大家详细介绍了python中各种常见文件(txt,xls,csv,sql,二进制文件)的读写操作与类型转换,感兴趣的小伙伴可以跟... 目录1.文件txt读写标准用法1.1写入文件1.2读取文件2. 二进制文件读取3. 大文件读取3.1

Java 正则表达式URL 匹配与源码全解析

《Java正则表达式URL匹配与源码全解析》在Web应用开发中,我们经常需要对URL进行格式验证,今天我们结合Java的Pattern和Matcher类,深入理解正则表达式在实际应用中... 目录1.正则表达式分解:2. 添加域名匹配 (2)3. 添加路径和查询参数匹配 (3) 4. 最终优化版本5.设计思

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效