При подключении linkHovered
сигнала QWebPage
к 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
Дайте мне знать, если это поможет.
Какой класс вы используете для своего виджета HTML? Это QWebView или QWebEngineView или что-то еще? –
, пожалуйста, разместите код, как вы создали строку состояния и как вы создали веб-представление – Kunal
Извините за задержку! Я загрузил http://doc.qt.io/qt-5/qtwebkitexamples-webkitwidgets-browser-example.html, и я пытаюсь понять его и модифицировать. Я стараюсь, чтобы добавить «placeholder» в строку состояния. Это QWebView. –