iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C/C++ Qt StatusBar底部状态栏应用是怎么样的
  • 717
分享到

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

2023-06-21 23:06:44 717人浏览 八月长安
摘要

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

这篇文章将为大家详细讲解有关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底部状态栏应用是怎么样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: C/C++ Qt StatusBar底部状态栏应用是怎么样的

本文链接: https://www.lsjlt.com/news/301246.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • C/C++ Qt StatusBar底部状态栏应用是怎么样的
    这篇文章将为大家详细讲解有关C/C++ Qt StatusBar底部状态栏应用是怎么样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Qt窗体中默认会附加一个Qstatu...
    99+
    2023-06-21
  • C/C++ Qt StatusBar底部状态栏应用教程
    Qt窗体中默认会附加一个QstatusBar组件,状态栏组件位于主窗体的最下方,其作用是提供一个工具提示功能,当程序中有提示信息是可以动态的显示在这个区域内,状态栏组件内可以增加任何...
    99+
    2024-04-02
  • C/C++ Qt QChart绘图组件的具体使用是怎么样的
    这篇文章给大家介绍C/C++ Qt QChart绘图组件的具体使用是怎么样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。QtCharts 组件是QT中提供图表绘制的模块,该模块可以方便的绘制常规图...
    99+
    2023-06-21
  • C/C++ Qt QThread线程组件的具体使用是怎样的
    这期内容当中小编将会给大家带来有关C/C++ Qt QThread线程组件的具体使用是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。QThread库是QT中提供的跨平台多线程实现...
    99+
    2023-06-21
  • C/C++ Qt ToolBar菜单组件的具体使用是怎样的
    C/C++ Qt ToolBar菜单组件的具体使用是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。ToolBar工具栏在所有窗体应用程...
    99+
    2023-06-21
  • C++ new用法是怎么样的
    今天就跟大家聊聊有关C++ new用法是怎么样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C++编程语言中有一种叫做new的术语。不过这一概念是比较模糊的,有些人把它理解为new...
    99+
    2023-06-17
  • C++ static不同的应用方式分别是怎样的
    C++ static不同的应用方式分别是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。C++编程语言的应用方式和其他语言特别是C语言有很多不同之处。那么今天大家就可以从C...
    99+
    2023-06-17
  • 怎么证明CRM WebClient UI上的应用是有状态的
    本篇内容主要讲解“怎么证明CRM WebClient UI上的应用是有状态的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么证明CRM WebClient UI上的应用是有状态的”吧!随便找一...
    99+
    2023-06-04
  • C++声明放置正确的应用方式是怎样的
    C++声明放置正确的应用方式是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。C++编程语言既然被看做是C语言的升级版本,它必然会具有C语言中的很多功能。不过其中还是有很多...
    99+
    2023-06-17
  • C# 程序通用结构是怎么样的
    这篇文章主要介绍了C# 程序通用结构是怎么样的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。C# 程序由一个或多个文件组成。 每个文件均包含零个或多个命名空间。 一...
    99+
    2023-06-22
  • C语言外部链接的静态变量怎么使用
    这篇文章主要介绍“C语言外部链接的静态变量怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C语言外部链接的静态变量怎么使用”文章能帮助大家解决问题。外部链接的静态变量具有文件作用域、外部链接和...
    99+
    2023-06-27
  • C#控制台应用程序的基本结构是怎样的
    这篇文章主要讲解了“C#控制台应用程序的基本结构是怎样的”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#控制台应用程序的基本结构是怎样的”吧!下面看看C#控制台应用程序示例(Console...
    99+
    2023-06-17
  • C语言数组的概念是什么及怎么应用
    这篇“C语言数组的概念是什么及怎么应用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言数组的概念是什么及怎么应用”文章吧...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作