0

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

4

2 回答 2

0

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

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

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

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

并实施

void YourCode::slotSourceChanged(const QUrl& url) {...}
于 2019-01-18T11:33:40.060 回答
0

我找到了为什么它不起作用。应指定初始来源:

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

谢谢 Jens 抽出宝贵时间。

于 2019-01-21T23:38:53.627 回答