c++ - 显示状态栏默认消息

标签 c++ qt statusbar

我在 Qt 中创建了一个状态栏。我正在开发一个网络浏览器。当用户将鼠标悬停在链接上时,状态栏会显示链接已悬停。

这行得通,但是当状态栏为空白时如何设置默认文本?

有没有办法做到这一点?

最佳答案

如果将QWebPagelinkHovered 信号连接到statusBar,难道您不能简单地检查它是否为空,然后显示您喜欢的任何消息吗?

下面的代码似乎可以按照您的描述进行操作,但也许我误解了您的要求?注意:我只是简单地创建了一个默认有状态栏的QMainWindow

#ifndef MYMAINWINDOW_H
#define MYMAINWINDOW_H

#include <QMainWindow>

#include "ui_mainwindow.h"

class MainWindow: public QMainWindow, private Ui::MainWindow
{
  Q_OBJECT

  public:
  MainWindow(QWidget *parent = 0) : QMainWindow(parent), defaultMessage("Default Message")  {
    setupUi(this);
    webView->load(QUrl("http://www.stackoverflow.com"));
    this->statusBar()->showMessage(defaultMessage);
    connect(webView->page(),SIGNAL(linkHovered(const QString & , const QString & , const QString & )),
            this, SLOT( hovered(const QString & , const QString & , const QString & ) ) );
  }

  public slots:

  void hovered(const QString & link, const QString & title, const QString & textContent) {
    this->statusBar()->showMessage(link == "" ?  defaultMessage : link);
  }

 private:
  QString defaultMessage;

};

#endif

如果这有帮助,请告诉我。

关于c++ - 显示状态栏默认消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30116950/

相关文章:

c++ - 优化QtCreator编译器的配置

ios - UIViewController 通话中状态栏问题

ios - 在 IOS 7 中将状态栏颜色设置为黑色

c++ - C/C++函数作为参数

c++ - 使用 Qt5 截取完整桌面的屏幕截图

c++ - std::experimental::is_detected 的奇怪 MSVC 行为

c++ - Qt Designer - 如何将信号连接到静态函数?

c++ - 将CBitmap转换为HICON并在状态栏上使用它

c++ - 使用 C++ 从 MJPEG 流中捕获视频

c++ - 通过引用传递的加法运算符