zoukankan      html  css  js  c++  java
  • Qt 状态栏设置

    版权声明

    该文章原创于Qter开源社区(www.qter.org),作者yafeilinux,转载请注明出处!



     
     
    导语

    在程序主窗口QMainWindow中,主要包含菜单栏,工具栏,中心部件和状态栏。前面几个已经讲过了,这一篇讲解状态栏的使用。
    环境是:Windows 7 + Qt 4.8.1 +Qt Creator 2.4.1



    目录

    一、添加动作状态提示
    二、显示其他临时信息
    三、显示永久信息



     
     
    正文

    一、添加动作状态提示
    1.首先还是打开上一篇完成的程序。对于菜单动作添加状态提示,可以很容易的在设计器中来完成。
    2.下面进入设计模式,在Action编辑器中选中新建动作,然后在右面的属性编辑器中将其statusTip更改为“新建文件”。如下图所示。
    <ignore_js_op>8-1更改动作状态提示.png
    3.这时运行程序,当光标移动到新建动作上时,在下面的状态栏将会出现设置的提示。如下图所示。
    <ignore_js_op>8-2动作提示运行效果.png
      我们可以按照这种方式来设置其他动作的状态栏提示信息。
    二、显示其他临时信息
    状态信息可以被分为三类:临时信息,如一般的提示信息,上面讲到的动作提示就是临时信息;正常信息,如显示页数和行号;永久信息,如显示版本号或者日期。可以使用showMessage()函数来显示一个临时消息,它会出现在状态栏的最左边。一般用addWidget()函数添加一个QLabel到状态栏上用于显示正常信息,它会生成到状态栏的最左边,可能会被临时消息所掩盖。
    1.我们到mainwindow.cpp文件的构造函数最后面添加如下一行代码:
    ui->statusBar->showMessage(tr("欢迎访问Qt爱好者社区!"));
    这样就可以在运行程序时显示指定的状态提示了。效果如下图所示。
    <ignore_js_op>8-3显示临时提示.png
    这个提示还可以设置显示的时间。如:
    ui->statusBar->showMessage(tr("欢迎访问Qt爱好者社区!"), 2000);
    这样提示显示2000毫秒即2秒后会自动消失。
    2.下面我们在状态栏添加一个标签部件用来显示一般的提示信息。因为无法在设计模式向状态栏添加部件,所以只能使用代码来实现。先在mainwindow.h文件中添加类的前置声明:
    class QLabel;
    然后添加一个私有对象定义:
    QLabel *statusLabel;
    下面到mainwindow.cpp文件中,先添加头文件声明:
    #include <QLabel>
    然后到构造函数中将前面添加的:
    ui->statusBar->showMessage(tr("欢迎访问Qt爱好者社区!"), 2000);
    一行代码注释掉,再添加如下代码:
     
    statusLabel = new QLabel;
    statusLabel->setMinimumSize(150, 20); // 设置标签最小大小
    statusLabel->setFrameShape(QFrame::WinPanel); // 设置标签形状
    statusLabel->setFrameShadow(QFrame::Sunken); // 设置标签阴影
    ui->statusBar->addWidget(statusLabel);
    statusLabel->setText(tr("欢迎访问Qt爱好者社区!"));
    这时运行程序,效果如下图所示。
    <ignore_js_op>8-4一般状态显示.png
    下面就可以在需要显示状态的时候,调用statusLabel来设置文本了。
    三、显示永久信息
    如果要显示永久信息,要使用addPermanentWidget()函数来添加一个如QLabel一样的可以显示信息的部件,它会生成在状态栏的最右端,不会被临时消息所掩盖。
    我们在构造函数中添加如下代码:
    QLabel *permanent = new QLabel(this);
    permanent->setFrameStyle(QFrame::Box | QFrame::Sunken);
    permanent->setText(
      tr("<a href="http://www.yafeilinux.com">yafeilinux.com</a>"));
    permanent->setTextFormat(Qt::RichText);
    permanent->setOpenExternalLinks(true);
     
    ui->statusBar->addPermanentWidget(permanent);
    这样就在状态栏的右侧添加了一个网站的超链接,点击该链接就会自动在浏览器中打开网站。运行程序,效果如下图所示。
    <ignore_js_op>8-5显示永久信息.png



    结语

    到这里整个文本编辑器的程序就算写完了。我们这里没有写帮助菜单的功能实现,大家可以自己添加。而且程序中也有很多漏洞和不完善的地方,如果有兴趣,大家也可以自己修改。因为时间和篇幅的原因,我们这里就不再过多的讲述。如果想学习一下多文档编辑器的实现,可以参考QtQt Quick开发实战精解》一书的多文档编辑器的实例。
  • 相关阅读:
    poj 3068 Bridge Across Islands
    XidianOJ 1086 Flappy v8
    XidianOJ 1036 分配宝藏
    XidianOJ 1090 爬树的V8
    XidianOJ 1088 AK后的V8
    XidianOJ 1062 Black King Bar
    XidianOJ 1091 看Dota视频的V8
    XidianOJ 1098 突击数论前的xry111
    XidianOJ 1019 自然数的秘密
    XidianOJ 1109 Too Naive
  • 原文地址:https://www.cnblogs.com/xuaidongstdudyrecording/p/6212202.html
Copyright © 2011-2022 走看看