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

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

本文将详细解释C/C QtStatusBar底部状态栏的应用。文章内容质量较高,边肖将分享给大家参考。希望你看完这篇文章后有所了解。

默认情况下,一个QstatusBar组件将被附加到Qt表单。状态栏组件位于主窗体的底部,其功能是提供工具提示功能。当程序中有提示可以在这个区域动态显示时,Qt中的任何通用组件都可以添加到状态栏组件中,通过动态追加addWidget函数可以将状态栏组件引入到底部。底部的状态栏在实际开发中被广泛使用。下面的代码总结了这个组件的基本使用方法。

首先,我们通过new添加三个QLabel组件,依次排列在底部状态栏中。实现代码如下所示:

#包含“mainwindow.h”

#包含' ui_mainwindow.h '

#includeQLabel

主窗口:主窗口(QWidget *父窗口):主窗口(父窗口),用户界面(新窗口)

{

ui-setupUi(本);

//初始化状态栏

QLabel*labCellIndex=newQLabel('当前坐标:0.0 ',此);

labCellIndex-setMinimumWidth(250);

QLabel * labCellType=new QLabel(' cell type : null ',this);

labCellType-setMinimumWidth(200);

QLabel * labStudID=new QLabel(' Student id :0 ',这个);

labStudID-setMinimumWidth(200);

//将初始化的标签添加到底部状态栏。

ui-status bar-addWidget(labCellIndex);

ui-status bar-addWidget(labCellType);

ui-status bar-addWidget(labStudID);

}

主窗口: ~主窗口()

{

deleteui

}运行代码的效果如下:

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

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

#包含“mainwindow.h”

#包含' ui_mainwindow.h '

# include ELT;QLabelgt

主窗口:主窗口(QWidget *父窗口):主窗口(父窗口),用户界面(新窗口)

{

ui-gt。setupUi(这个);

//隐藏状态栏下方的三角形

ui-gt。statusBar-gt。setsizegrippenabled(false);

//添加新的标签栏

QLabel * label _ URL=new QLabel(this);

QLabeln

bsp;*label_about = new QLabel(this);
    // 配置连接
    label_url->setFrameStyle(QFrame::Box | QFrame::Sunken);
    label_url->setText(tr("<a href=\"https://lyshark.cnblogs.com\">访问主页</a>"));
    label_url->setOpenExternalLinks(true);
    label_about->setFrameStyle(QFrame::Box | QFrame::Sunken);
    label_about->setText(tr("<a href=\"https://lyshark.cnblogs.com\">关于我</a>"));
    label_about->setOpenExternalLinks(true);
    // 将信息增加到底部(永久添加)
    ui->statusBar->addPermanentWidget(label_url);
    ui->statusBar->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/lyshark
void 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底部状态栏应用是怎么样的就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/133159.html

(0)

相关推荐

  • 抖音刷粉后果,抖音刷粉丝专业讲解?

    技术抖音刷粉后果,抖音刷粉丝专业讲解?抖音怎么刷粉丝?想要抖音刷粉的小伙伴都会有个疑惑,那就是抖音刷粉后果会严重不?因为抖音公告上有说不允许通过刷粉的方式增加粉丝的,所以大家就比较担心这个抖音刷粉刷赞被发现后果严重不严重

    测评 2021年10月19日
  • debug P命令跟踪程序时遇到Int 21使用P命令的分析

    技术debug P命令跟踪程序时遇到Int 21使用P命令的分析debug P命令跟踪程序时遇到Int 21使用P命令的分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能

    攻略 2021年11月11日
  • Oracle_勒索病毒的解决方案是怎么样的

    技术Oracle_勒索病毒的解决方案是怎么样的这期内容当中小编将会给大家带来有关Oracle_勒索病毒的解决方案是怎么样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Oracle_勒

    攻略 2021年12月8日
  • 如何用3个步骤实现响应式Web设计

    技术如何用3个步骤实现响应式Web设计本篇文章给大家分享的是有关如何用3个步骤实现响应式Web设计,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。写在前面的话

    攻略 2021年11月17日
  • potato的复数形式,potato的复数形式是什么

    技术potato的复数形式,potato的复数形式是什么potato的复数形式是potatoespotato的复数形式。 英 [pəteɪtəʊ],美 [pəteɪtoʊ]     n. 马铃薯;土豆
    例句:
    1、T

    生活 2021年10月23日
  • LeetCode538 把二叉搜索树转为累加树

    技术LeetCode538 把二叉搜索树转为累加树 LeetCode538 把二叉搜索树转为累加树题目
    给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum T

    礼包 2021年12月13日