我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C/C++ Qt StatusBar底部状态栏应用是怎么样的

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C/C++ Qt StatusBar底部状态栏应用是怎么样的

这篇文章将为大家详细讲解有关C/C++ Qt StatusBar底部状态栏应用是怎么样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

Qt窗体中默认会附加一个QstatusBar组件,状态栏组件位于主窗体的最下方,其作用是提供一个工具提示功能,当程序中有提示信息是可以动态的显示在这个区域内,状态栏组件内可以增加任何Qt中的通用组件,只需要通过addWidget函数动态追加即可引入到底部,底部状态栏在实际开发中应用非常普遍,以下代码是对该组件基本使用方法的总结。

首先我们通过new新增3个QLabel组件,并将该组件依次排列在底部状态栏内,实现代码如下所示:

#include "mainwindow.h"#include "ui_mainwindow.h"#include <QLabel>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){    ui->setupUi(this);    // 初始化状态栏    QLabel *labCellIndex = new QLabel("当前坐标: 0.0",this);    labCellIndex->setMinimumWidth(250);    QLabel *labCellType=new QLabel("单元格类型: null",this);    labCellType->setMinimumWidth(200);    QLabel *labStudID=new QLabel("学生ID: 0",this);    labStudID->setMinimumWidth(200);    // 将初始化的标签添加到底部状态栏上    ui->statusBar->addWidget(labCellIndex);    ui->statusBar->addWidget(labCellType);    ui->statusBar->addWidget(labStudID);}MainWindow::~MainWindow(){    delete ui;}

运行代码效果如下:

C/C++ Qt StatusBar底部状态栏应用是怎么样的

QLabel组件除了可以增加提示信息以外,通过设置setOpenExternalLinks可以将这个组件设置为以链接形式出现,有利于我们增加网页跳转等功能。

#include "mainwindow.h"#include "ui_mainwindow.h"#include &lt;QLabel&gt;MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){    ui-&gt;setupUi(this);    // 隐藏状态栏下方三角形    ui-&gt;statusBar-&gt;setSizeGripEnabled(false);    // 新增标签栏    QLabel *label_url = new QLabel(this);    QLabel *label_about = new QLabel(this);    // 配置连接    label_url-&gt;setFrameStyle(QFrame::Box | QFrame::Sunken);    label_url-&gt;setText(tr("&lt;a href=\"https://lyshark.cnblogs.com\"&gt;访问主页&lt;/a&gt;"));    label_url-&gt;setOpenExternalLinks(true);    label_about-&gt;setFrameStyle(QFrame::Box | QFrame::Sunken);    label_about-&gt;setText(tr("&lt;a href=\"https://lyshark.cnblogs.com\"&gt;关于我&lt;/a&gt;"));    label_about-&gt;setOpenExternalLinks(true);    // 将信息增加到底部(永久添加)    ui-&gt;statusBar-&gt;addPermanentWidget(label_url);    ui-&gt;statusBar-&gt;addPermanentWidget(label_about);}MainWindow::~MainWindow(){    delete ui;}

运行代码效果如下:

C/C++ Qt StatusBar底部状态栏应用是怎么样的

同理,只要是通用组件都可以被安置到底部菜单栏,如果我们需要增加进度条组件只需要这样写:

#include "mainwindow.h"#include "ui_mainwindow.h"#include <QLabel>#include <QProgressBar>QProgressBar *pro;MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){    ui->setupUi(this);    pro = new QProgressBar(this);    // 自动计算    ui->statusBar->addPermanentWidget(pro, 1);    // 设置进度是否显示    pro->setTextVisible(true);    // 设置初始化进度位置    pro->setValue(0);}MainWindow::~MainWindow(){    delete ui;}void MainWindow::on_pushButton_clicked(){    qint32 count = pro->value();    count = count +10;    pro->setValue(count);}

运行代码效果如下:

C/C++ Qt StatusBar底部状态栏应用是怎么样的

接着我们增加一个tablewidget并初始化参数,tableWidget组件存在一个on_tableWidget_currentCellChanged属性,该属性的作用是,只要Table表格存在变化则会触发,当用户选择不同的表格,我们可以将当前表格行列自动设置到状态栏中,从而实现同步状态栏消息提示,起到时刻动态显示的作用。

#include "mainwindow.h"#include "ui_mainwindow.h"#include <QLabel>#include <QTableWidget>#include <QTableWidgetItem>QLabel *labCellIndex;MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){    ui->setupUi(this);// ------------------------------------------------------------------------------------// 初始化状态栏    labCellIndex = new QLabel("当前坐标: 0.0",this);    labCellIndex->setMinimumWidth(250);    // 将初始化的标签添加到底部状态栏上    ui->statusBar->addWidget(labCellIndex);// ------------------------------------------------------------------------------------// 填充数据,对表格进行初始化操作    QStringList header;    header << "姓名" << "性别" << "年龄";    ui->tableWidget->setColumnCount(header.size());                        // 设置表格的列数    ui->tableWidget->setHorizontalHeaderLabels(header);                    // 设置水平头    ui->tableWidget->setRowCount(5);                                       // 设置总行数    ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);   // 设置表结构默认不可编辑    // 填充数据    QStringList NameList;    NameList << "lyshark A" << "lyshark B" << "lyshark C";    QStringList SexList;    SexList << "男" << "男" << "女";    qint32 AgeList[3] = {22,23,43};    // 针对获取元素使用 NameList[x] 和使用 NameList.at(x)效果相同    for(int x=0;x< 3;x++)    {        int col =0;        // 添加姓名        ui->tableWidget->setItem(x,col++,new QTableWidgetItem(NameList[x]));        // 添加性别        ui->tableWidget->setItem(x,col++,new QTableWidgetItem(SexList.at(x)));        // 添加年龄        ui->tableWidget->setItem(x,col++,new QTableWidgetItem( QString::number(AgeList[x]) ) );    }}// 当前选择单元格发生变化时触发响应事件,也就是将底部状态栏标签设置// https://www.cnblogs.com/lysharkvoid MainWindow::on_tableWidget_currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn){    Q_UNUSED(previousRow);    Q_UNUSED(previousColumn);    // 显示行与列的变化数值    //std::cout << "currentRow = " << currentRow << " currentColumn = " << currentColumn << std::endl;    //std::cout << "pre Row = " << previousRow << " pre Column = " << previousColumn << std::endl;    // 获取当前单元格的Item    QTableWidgetItem *item = ui->tableWidget->item(currentRow,currentColumn);    if(item == NULL)    return;    // 设置单元格坐标    labCellIndex->setText(QString::asprintf("当前坐标: %d 行 | %d 列",currentRow,currentColumn));}MainWindow::~MainWindow(){    delete ui;}

运行代码效果如下:

C/C++ Qt StatusBar底部状态栏应用是怎么样的

关于C/C++ Qt StatusBar底部状态栏应用是怎么样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C/C++ Qt StatusBar底部状态栏应用是怎么样的

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C/C++ Qt StatusBar底部状态栏应用是怎么样的

这篇文章将为大家详细讲解有关C/C++ Qt StatusBar底部状态栏应用是怎么样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Qt窗体中默认会附加一个QstatusBar组件,状态栏
2023-06-21

C/C++ Qt QChart绘图组件的具体使用是怎么样的

这篇文章给大家介绍C/C++ Qt QChart绘图组件的具体使用是怎么样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。QtCharts 组件是QT中提供图表绘制的模块,该模块可以方便的绘制常规图形,Qtcharts
2023-06-21

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录