QStatusBar类
来源:互联网 发布:淘宝靠谱吉他 编辑:程序博客网 时间:2024/06/03 20:59
状态栏是位于主窗口的最下方,提供一个显示工具提示等信息的地方。一般地,当窗口不是最大化的时候,状态栏的右下角会有一个可以调节大小的控制点;当窗口最大化的时候,这个控制点会自动消失。Qt提供了一个QStatusBar类来实现状态栏。
QMainWindow类里面就有一个statusBar()函数,用于实现状态栏的调用。statusBar()函数类似于menuBar()函数,如果不存在状态栏,该函数会自动创建一个,如果已经创建则会返回这个状态栏的指针。如果要替换掉已经存在的状态栏,需要使用QMainWindow的setStatusBar()函数。
在Qt里面,状态栏显示的信息有三种类型:临时信息、一般信息和永久信息。其中,临时信息指临时显示的信息,比如QAction的提示等,也可以设置自己的临时信息,比如程序启动之后显示Ready,一段时间后自动消失——这个功能可以使用QStatusBar的showMessage()函数来实现;一般信息可以用来显示页码之类的;永久信息是不会消失的信息,比如可以在状态栏提示用户Caps Lock键被按下之类。
QStatusBar继承自QWidget,因此它可以添加其他的QWidget。下面我们在QStatusBar上添加一个QLabel:
首先在class的声明中添加一个私有的QLabel属性:
private:
QAction *openAction;
QLabel *msgLabel;
QAction *openAction;
QLabel *msgLabel;
然后在其构造函数中添加:
msgLabel = new QLabel;
msgLabel->setMinimumSize(msgLabel->sizeHint());
msgLabel->setAlignment(Qt::AlignHCenter);
statusBar()->addWidget(msgLabel);
msgLabel->setMinimumSize(msgLabel->sizeHint());
msgLabel->setAlignment(Qt::AlignHCenter);
statusBar()->addWidget(msgLabel);
第一行创建一个QLabel的对象,然后设置最小大小为其本身的建议大小——注意,这样设置之后,这个最小大小可能是变化的——最后设置显示规则是水平居中(HCenter)。
最后一行使用statusBar()函数将这个label添加到状态栏。编译运行,将鼠标移动到工具条或者菜单的QAction上,状态栏就会有相应的提示:
我们发现一个现象:当没有任何提示时,状态栏会有一个短短的竖线:
这是什么呢?
其实,这是QLabel的边框。当没有内容显示时,QLabel只显示出自己的一个边框。但是,很多情况下我们并不希望有这条竖线,于是,我们对statusBar()进行如下设置:
statusBar()->setStyleSheet(QString("QStatusBar::item{border: 0px}"));
简单来说,就是把QStatusBar的子组件的border设置为0,也就是没有边框。现在再编译试试吧!那个短线消失了!
QStatusBar右下角的大小控制点可以通过setSizeGripEnabled()函数来设置是否存在
statusBar()->setSizeGripEnabled(false);可以隐藏大小控制点
下面是Qt Assistant中的函数属性介绍:
sizeGripEnabled : bool
This property holds whether the QSizeGrip in the bottom-right corner of the status bar is enabled.
The size grip is enabled by default.
现在,我们的状态栏已经初步完成了。由于QStatusBar可以添加多个QWidget,因此,我们可以构建出很复杂的状态栏。 0 0
- QStatusBar类
- QStatusBar类
- QStatusBar类
- QStatusBar的学习
- QT状态栏QStatusBar
- QT状态栏QStatusBar
- QT之qss教程-QStatusBar
- Qt学习笔记(2) QMenu QToolBar ContextMenu QStatusBar
- Qt:QStatusBar 和 QProgressBar 详细讲解(源码下载)
- QtCreator 应用程序主窗口---多文档QMdiArea(MDI多文档界面的区域),QDockWidget(Dock部件),QStatusBar(状态栏)
- 类
- 类
- 类
- 类
- 类
- 类
- 类
- 类
- jeecg-easypoi-2.0.3版本发布
- Two Sum
- QT状态栏QStatusBar
- 通信算法之六:通信系统算法设计、链路理论预算、与实际链路运算
- ACM 中JAVA的应用
- QStatusBar类
- Netstat (| tcpdump | ipcs | ipcrm待补)
- MySQL 最基本的SQL语法/语句
- uva 1358 - Generator(KMP+期望)
- QToolBar上的控件靠右侧对齐的方法
- 【java类的设计模式—01】单例模式(Singleton pattern)
- 【Android-PullToRefresh】 上拉刷新、下拉加载 使用详解
- 函数重载和const形参的函数重载
- js模拟发短信version1