QLabel通过锚跳转到html帮助页面

本文介绍了如何在Qt中使用QTextDocument、QLabel、QTextEdit和QTextBrowser控件展示HTML内容,重点讲解了设置外部链接和通过linkActivated信号实现锚点跳转的方法。实例展示了HTML结构和相关函数的使用。
摘要由CSDN通过智能技术生成

对Html富文本支持的控件:

QTextDocument, QLabel, QTextEdit,QTextBrowser
使用HTML4 标记

打开超链接的方式

一、setOpenExternalLinks(true)

用Qt自带的setOpenExternalLinks(true)函数进行设置

二、linkActivated信号与槽函数

通过锚跳转到指定位置

  1. 用QLabel显示超链接
help_label = QLabel()
help_label.setText('<a style="color:#666666;font-size:15px;" href="cangti">cangti、reyuan...</a>')
help_label.linkActivated.connect(self.onShowTemplate)

跳转的槽函数:

    def onShowTemplate(self, link):
        # 跳转到帮助页面
        help_widget = HelpWidget()
        help_widget.move_to_anchor(link)

注意:href="cangti"中对应的是html中的name

  1. 利用QTextBrowser显示html内容

html内容:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
</head>
<body>

<h2><a id="top">这是标题,底部链接可以链接到这</a></h2>

<p>1!<br><br><br><br></p>
<p>2!<br><br><br><br></p>
<p>3!<br><br><br><br></p>
<p>4!<br><br><br><br></p>
<p>5!<br><br><br><br></p>
<p>6!<br><br><br><br></p>
<p>7!<br><br><br><br></p>
<p>8!<br><br><br><br></p>
<p>9!<br><br><br><br></p>
<p>10!<br><br><br><br></p>
<p>11!<br><br><br><br></p>
<p>12!<br><br><br><br></p>
<p>13!<br><br><br><br></p>
<p>14!<br><br><br><br></p>
<p>15!<br><br><br><br></p>
<p>16!<br><br><br><br></p>
<p>17!<br><br><br><br></p>
<p>18!<br><br><br><br></p>
<p>19!<br><br><br><br></p>
<p>20!<br><br><br><br></p>
<p>21!<br><br><br><br></p>
<p>22!<br><br><br><br></p>
<p>23!<br><br><br><br></p>
<p>24!<br><br><br><br></p>
<p>25!<br><br><br><br></p>
<p>26!<br><br><br><br></p>
<p>27!<br><br><br><br></p>
<p>28!<br><br><br><br></p>
<p>29!<br><br><br><br></p>
<p>30!<br><br><br><br></p>
<a href="#top">链接到标题</a>
<h3><a name="cangti">舱体结构命名为cangti</a></h3><br>
</body>
</html>

HelpWidget.py

class TextWidget(QWidget):
    def __init__(self):
        super(HelpWidget, self).__init__()
        self.main_layout = QVBoxLayout(self)
        self.edit = QTextBrowser()
        file = QFile(os.getcwd() + "/help.html")
        file.open(QFile.ReadOnly | QFile.Text)
        stream = QTextStream(file)
        stream.setCodec(QTextCodec.codecForName("utf-8"))
        self.edit.setHtml(stream.readAll())
        self.main_layout.addWidget(self.edit)

    def move_to_anchor(self, anchor):
        self.edit.scrollToAnchor(anchor)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值