QTextBrowser for Helper
Я пытаюсь сделать помощника с QTextBrowser. Как я понял, home(), backward() и forward() уже реализованы в QTextBrowser и требуют только подключения к кнопкам. Ниже есть файлы.h и.cpp
#ifndef HELPWINDOW_H
#define HELPWINDOW_H
#include <QDialog>
namespace Ui {
class HelpWindow;
}
class HelpWindow : public QDialog
{
Q_OBJECT
public:
explicit HelpWindow(QWidget *parent = 0);
~HelpWindow();
private slots:
private:
Ui::HelpWindow *ui;
};
#endif // HELPWINDOW_H
а также
#include "helpwindow.h"
#include "ui_helpwindow.h"
HelpWindow::HelpWindow(QWidget *parent) :
QDialog(parent),
ui(new Ui::HelpWindow)
{
ui->setupUi(this);
// connection
connect(ui->pushButton_home,SIGNAL(clicked()),ui->textBrowser,SLOT(home()));
connect(ui->pushButton_forward,SIGNAL(clicked()),ui->textBrowser,SLOT(forward()));
connect(ui->pushButton_backward,SIGNAL(clicked()),ui->textBrowser,SLOT(backward()));
}
HelpWindow::~HelpWindow()
{
delete ui;
}
Там нет никакого сообщения об ошибке. Можно прочитать и щелкнуть ссылки внутри QTextBrowser. Только никаких действий с кнопками нет. Что мне здесь не хватает?
2 ответа
Решение
Я нашел, почему это не сработало. Первоначальный источник должен быть указан:
ui->textBrowser->setSource(QUrl::fromLocalFile("help/index.html"));
Спасибо, Дженс, что уделили время.
Вам нужно вызвать одно или оба из следующих свойств
ui->textBrowser.setOpenLinks(true);
ui->textBrowser.setOpenExternalLinks(true);
и если вы хотите фильтровать или перенаправлять ссылки во время выполнения
connect(ui->textBrowser, SIGNAL(sourceChanged(QUrl)), pointerToYourCode, SLOT(slotSourceChanged(QUrl)));
и реализовать
void YourCode::slotSourceChanged(const QUrl& url) {...}