【问题标题】:QTextBrowser for Helper助手的 QTextBrowser
【发布时间】:2019-06-12 06:36:40
【问题描述】:

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

【问题讨论】:

    标签: qt qtextbrowser


    【解决方案1】:

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

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

    感谢 Jens 抽出宝贵时间。

    【讨论】:

      【解决方案2】:

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

      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->setOpenLinks(true); ui->textBrowser->setOpenExternalLinks(true);但它没有帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多