首页 > 作文

C/C++ Qt StatusBar底部状态栏应用教程

更新时间:2023-04-04 00:28:53 阅读: 评论:0

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->tupui(this);    // 初始化状态栏    qlabel *labcellindex = new qlabel("当前坐标: 0.0",this);    labcellindex->tminimumwidth(250);    qlabel *labcelltype=new qlabel("单元格类型: null",this);    labcelltype->tminimumwidth(200);    qlabel *labstudid=new qlabel("学生id: 0",this);    labstudid->tminimumwidth(200);    // 将初始化的标签添加到底部状态栏上    ui->statusbar->addwidget(labcellindex);    ui->statusbar->addwidget(labcelltype);    ui->statusbar->addwidget(labstudid);}mainwindow::~mainwindow(){    delete ui;}

运行代码效果如下:

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

#include "mainwindow.h"#include "ui_mainwindow.h"#include &lt;qlabel&gt;mainwindow::mainwindow(qwidget *parent) : qmainwindow(parent), ui(new ui::mainwindow){    ui-&gt;tupui(this);    // 隐藏状态栏下方三角形    ui-&gt;statusbar-&gt;tsizegripenabled(fal);    // 新增标签栏    qlabel *label_url = new qlabel(this);    qlabel *label_about = new qlabel(this);    // 配置连接    label_url-&gt;tframestyle(qframe::box | qframe::sunken);    label_url-&gt;ttext(tr("&lt;a href=\"https://lyshark.cnblogs.com\"&gt;访问主页&lt;/a&gt;"));    label_url-&gt;topenexternallinks(true);    label_about-&gt;tframestyle(qframe::box | qframe::sunken);    label_about-&gt;ttext(tr("&lt;a href=\"https://lyshark.cnblogs.com\"&gt;关于我&lt;/a&gt;"));    label_about-&gt;topenexternallinks(true);    // 将信息增加到底部(永久添加)    ui-&gt;statusbar-&gt;addpermanentwidget(label_url);    ui-&gt;statusbar-&gt;addpermanentwidget(label_about);}mainwindow::~mainwindow(){    delete ui;}

运行代码效果如下:

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

#include "mainwindow.h"#include "ui_mainwindow.h"#include <qlabel>#include <qprogressbar>qprogressbar *pro;mainwindow::mainwindow(qwidget *parent) : qmainwindow(parent), ui(new ui::mainwindow){    ui->tupui(this);    pro = new qprogressbar(this);    // 自动计算    ui->statusbar->addpermanentwidget(pro, 1);    // 设置进度是否显示    pro->ttextvisible(true);    // 设置初始化进度位置    pro->tvalue(0);}mainwindow::~mainwindow(){    delete ui;}void mainwindow::on_pushbutton_clicked(){    qint32 count = pro->value();    count = count +10;    pro->tvalue(count);}

运行代码效果如下:

接着我们增加一个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->tupui(this);// ------------------------------------------------------------------------------------// 初始化状态栏    labcellindex = new qlabel("当前坐标: 0.0",this);    labcellindex->tminimumwidth(250);    // 将初始化的标签应聘简历表格添加到底部状态栏上    ui->statusbar->addwidget(labcellindex);// ------------------------------------------------------------------------------------// 填充数据,对表格进行初始化操作    qstringlist header;    header << "姓名" << "性别" << "年龄";    ui->tablewidget->tcolumncount(header.size());                        // 设置表格的列数    ui->tablewidget->thorizontalheaderlabels(header);                    // 设置水平头    ui->tablewidget->trowcount(5);                                       // 设置总行数    ui->tablewidget->tedittriggers(qabstractitemview::noedittriggers);   // 设置表结构默认不可编辑    // 填充数据    qstringlist namelist;    namelist << "lyshark a" << "lyshark b" << "lyshark c";    qstringlist xlist;    xlist << "男" << "男" << "女";    qint32 agelist[3] = {22,23,43};    // 针对获取元素使用 namelist[x] 和使用 namelist.at(x)效果相同    for(int x=0;x< 3;x++)    {        int col =0;        // 添加姓名        ui->tablewidget->titem(x,col++,new qtablewidgetitem(namelist[x]));        // 添加性别        ui->tablewidget->titem(x,col++,new qta恨一个人blewidgetitem(xlist.at(x)));        // 添加年龄        ui->tablewidget->titem(x,col++,new qtablewidgetitem( qstring::number(agelist[x]) ) );    }}// 当前选择单元格发生变化时触发响应事件,也就是将底部状态栏标签设置// https://www.cnblogs.com/lysharkvoid mainwindow::on_tablewidget_currentcellch愚人节恶作剧anged(int currentrow, int currentcolumn, int previousrow, int previouscolumn){    q_unud(previousrow);    q_unud(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->ttext(qstring::asprintf("当前坐标: %d 行 | %d 列",currentrow,currentcolumn));}mainwindow::~mainwindow(){    delete ui;}

运行代码小时代崇光效果如下:

到此这篇关于c/c++ qt statusbar底部状态栏应用教程的文章就介绍到这了,更多相关c++ qt statusbar底部状态栏内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-04 00:28:52,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/a5e5ec7b73043c39cc564e79ceae319a.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:C/C++ Qt StatusBar底部状态栏应用教程.doc

本文 PDF 下载地址:C/C++ Qt StatusBar底部状态栏应用教程.pdf

标签:组件   状态栏   初始化   表格
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图