Я создал строку состояния в Qt. Я занимаюсь разработкой веб-браузера. Когда пользователь наводит на ссылку, в строке состояния отображается ссылка.
Это работает, но как мне установить текст по умолчанию, когда строка состояния пуста?
Есть ли возможность сделать это?
Если вы подключите linkHovered
сигнал о QWebPage
на панели состояния, вы не можете просто проверить, пусто ли оно, а затем отобразить любое сообщение, которое вам нравится?
Код ниже, кажется, делает то, что вы описываете, но, возможно, я неправильно понял, что вы спрашивали? Примечание: я просто создал 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
Позвольте мне знать, если это помогает.