欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > 【Qt】状态栏

【Qt】状态栏

2024/10/25 6:22:01 来源:https://blog.csdn.net/t5y22/article/details/140962833  浏览:    关键词:【Qt】状态栏

目录

一.状态栏

1.简述状态栏

二.QStatusBar

1.概念

2.QStatusBar的属性

3.QStatusBar常用成员函数

三.代码创建状态栏

1.创建状态栏

2.在状态栏上显示实时信息

3.在状态栏上显示永久信息(通过label)

4.在状态栏中创建进度条


一.状态栏

1.简述状态栏

状态栏是应⽤程序中输出简要信息的区域。⼀般位于主窗⼝的最底部,⼀个窗⼝中最多只能有⼀个状态栏。在 Qt 中,状态栏是通过 QStatusBar类 来实现的。

在状态栏中可以显⽰的消息类型有:

  • 实时消息:如当前程序状态
  • 永久消息:如程序版本号,机构名称
  • 进度消息:如进度条提⽰,百分百提⽰

二.QStatusBar

1.概念

QStatusBar是Qt框架为了实现状态栏提供的类,用于在应用程序窗口底部显示状态信息。它可以显示一些固定的文本和图标,并且可以通过API动态更新显示内容。

2.QStatusBar的属性

属性说明
currentMessage当前显示的文本消息。
可以使用setCurrentMessage()方法来设置。
sizeGripEnabled是否显示大小调整控件。
默认情况下,状态栏右侧会显示一个大小调整的小部件,可以通过设置该属性为false来隐藏它。
visible状态栏的可见性。
可以使用setVisible()方法来设置状态栏的可见性。
count状态栏当前显示的小部件数量。
可以通过addWidget()方法添加小部件,并通过removeWidget()方法移除小部件。
maximumHeight状态栏的最大高度。
可以使用setMaximumHeight()方法设置状态栏的最大高度。

3.QStatusBar常用成员函数

API说明
showMessage()显示一条文本消息。可以指定消息内容、显示时间和消息类型(例如,临时消息或永久消息)。
clearMessage()清除当前显示的消息。
addWidget()添加一个小部件到状态栏。可以添加QLabel、QProgressBar等小部件。
removeWidget()移除状态栏上的指定小部件。
insertWidget()在指定位置插入一个小部件到状态栏。
setStyleSheet()设置状态栏的样式表。
setSizeGripEnabled()设置是否显示大小调整控件。
setVisible()设置状态栏的可见性。
heightForWidth()根据宽度计算状态栏的高度。

三.代码创建状态栏

1.创建状态栏

状态栏的创建是通过 QMainWindow 类提供的 statusBar()函数来创建;⽰例如下:

//创建状态栏QStatusBar* sta=statusBar();//将状态栏设置到窗口上this->setStatusBar(sta);

2.在状态栏上显示实时信息

 // 在状态栏显示信息20ssta->showMessage("hello Qt",6000);

运行结果:

3.在状态栏上显示永久信息(通过label)

//创建标签QLabel* label=new QLabel("Progress bar");//将标签设置到状态栏中 来永久显示信息sta->addWidget(label);//创建另一个标签,放置于右侧QLabel* label2=new QLabel("Prompt message _ right");sta->addPermanentWidget(label2);

运行结果:

4.在状态栏中创建进度条

 //创建进度条QProgressBar* progressbar=new QProgressBar();//设置进度条范围progressbar->setRange(0,100);//设置进度条样式progressbar->setStyleSheet("QProgressBar::chunk{border-radius:5px;background:blue}");//设置进度条初值progressbar->setValue(50);//设置进度条到窗口sta->addWidget(progressbar);

运行结果:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com