Helper 的 QTextBrowser

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 中的链接。只有没有任何按钮操作。我在这里想念什么?

您需要调用以下一个或两个属性

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

如果您想在运行时过滤或重新路由链接

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

并实施

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

我找到了它不起作用的原因。初始来源应指定:

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

谢谢 Jens 花时间。