我在 Qt 中创建了一个状态栏。我正在开发一个网络浏览器。当用户将鼠标悬停在链接上时,状态栏会显示链接已悬停。
这行得通,但是当状态栏为空白时如何设置默认文本?
有没有办法做到这一点?
最佳答案
如果将QWebPage
的linkHovered
信号连接到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/