您的位置:首页 > 其它

(7)状态栏

2015-08-28 09:42 423 查看
从控件的类型上看,QStatusBar继承自QWidget,因此它可以添加其他的QWidget。

他可以有主要三种类型,临时信息、一般信息和永久信息。其中,临时信息指临时显示的信息,比如QAction的提示等,也可以设置自己的临时信息,比如程序启动之后显示Ready,一段时间后自动消失——这个功能可以使用QStatusBar的showMessage()函数来实现;一般信息可以用来显示页码之类的;永久信息是不会消失的信息,比如可以在状态栏提示用户Caps
Lock键被按下之类。

下面将基于(6)那篇文章之后的代码。我们在状态栏中加入一个QLabel控件。

private:
     QLabel *msgLabel;
构造函数中添加:

msgLabel = new QLabel;
    msgLabel->setMinimumSize(msgLabel->sizeHint());
    msgLabel->setAlignment(Qt::AlignHCenter);

    //QMainWindow类里面就有一个statusBar()函数,
    //用于实现状态栏的调用。类似menuBar()函数,
    //如果不存在状态栏,该函数会自动创建一个,如果已经创建则会返回这个状态栏的指针。
    //如果你要替换掉已经存在的状态栏,
    //需要使用QMainWindow的setStatusBar()函数
    statusBar()->addWidget(msgLabel);
    //再没有添加这条语句之前状态栏是有一条短线的,
    //其实,这是QLabel的边框。当没有内容显示时,QLabel只显示出自己的一个边框。
    //但是,很多情况下我们并不希望有这条竖线,于是,我们对statusBar()进行如下设置
    statusBar()->setStyleSheet(QString("QStatusBar::item{border:0px}"));
    //上面这条语句的意思是:简单来说,就是把QStatusBar的子组件的border设置为0,也就是没有边框。


语句的说明见代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: