QTextBrowser for Helper - PullRequest
       14

QTextBrowser for Helper

0 голосов
/ 18 января 2019

Я пытаюсь сделать помощника с 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;
}

enter image description here

Нет сообщения об ошибке. Можно прочитать и щелкнуть ссылки внутри QTextBrowser. Только никаких действий с кнопками нет. Что мне здесь не хватает?

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Я нашел, почему это не сработало. Первоначальный источник должен быть указан:

ui->textBrowser->setSource(QUrl::fromLocalFile("help/index.html"));

Спасибо, Дженс, за то, что уделили время.

0 голосов
/ 18 января 2019

Вам нужно вызвать одно или оба из следующих свойств

ui->textBrowser.setOpenLinks(true);
ui->textBrowser.setOpenExternalLinks(true);

и если вы хотите отфильтровать или перенаправить ссылки во время выполнения

connect(ui->textBrowser, SIGNAL(sourceChanged(QUrl)), pointerToYourCode, SLOT(slotSourceChanged(QUrl)));

и внедрить

void YourCode::slotSourceChanged(const QUrl& url) {...}
...