QTextBrowser的助手

时间:2019-01-18 01:08:14

标签: qt qtextbrowser

我正在尝试使用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 :(得分: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) {...}

答案 1 :(得分:0)

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

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

Jens,谢谢您的宝贵时间。