我正在尝试使用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内的链接。只有按钮没有任何动作。我在这里想念什么?
答案 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,谢谢您的宝贵时间。