Qt对Html富文本支持的控件以及QLabel两种打开超链接的方式



原创文章,欢迎转载。转载请注明:转载自 祥的博客

原文链接:https://blog.csdn.net/humanking7/article/details/80685893


  • 1.说明
  • 2.演示
    • 2.1. 代码
    • 2.2. 关于打开超链接的两种方式说明
  • 3.支持的标签 Tags
  • 4. 对CSS的支持


1.说明

Qt的文本窗体部件能够显示富文本,使用HTML4 标记。能够以这种方式显示富文本的窗体控件有: QTextDocument, 以及 QLabel and QTextEdit

Qt’s text widgets are able to display rich text, specified using a subset of HTML4 markup. Widgets that use QTextDocument, such as QLabel and QTextEdit, are able to display rich text specified in this way.

2.演示

Qt对Html富文本支持的控件以及QLabel两种打开超链接的方式_第1张图片

2.1. 代码

#include 
#include 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QString str;
    str = QString("

Hello Qt!

My CSDN blog: https://blog.csdn.net/humanking7

"
); QLabel *lab = new QLabel(str); lab->setOpenExternalLinks(true);//如果没有这句,就只能通过linkActivated信号,连接到自定义槽函数中打开 lab->setWindowTitle("Test Html support"); lab->show(); return a.exec(); }

2.2. 关于打开超链接的两种方式说明

  1. 简单方式,用Qt自带的setOpenExternalLinks(true)函数进行设置;
  2. 用通过linkActivated信号,连接到自定义槽函数中打开超链接。

用第二种方式实现超链接[重新继承了一个QDialog类,在里面进行操作]:

Qt对Html富文本支持的控件以及QLabel两种打开超链接的方式_第2张图片

文件1. main.cpp

#include 
#include "dlgShow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    dlgShow* w = new dlgShow();
    w->show();
    return a.exec();
}

文件2. dlgshow.h


#ifndef DLGSHOW_H
#define DLGSHOW_H

#include 
#include 
class dlgShow : public QDialog
{
    Q_OBJECT

public:
    dlgShow(QWidget *parent = 0);
    ~dlgShow();

protected slots:
    void openURL(QString url);
};

#endif // DLGSHOW_H

文件3. dlgshow.cpp

#include 
#include 
#include "dlgshow.h"

dlgShow::dlgShow(QWidget *parent)
    : QDialog(parent)
{   
    setWindowTitle("Dlg:Test Html support");//设置标题
    QString str;
    str = QString("

Hello Qt!

My CSDN blog: https://blog.csdn.net/humanking7

"
); QLabel *lab = new QLabel(str, this);//添加label lab->show(); //绑定超链接与信号槽 connect(lab, SIGNAL(linkActivated(QString)), this, SLOT(openURL(QString))); } void dlgShow::openURL(QString url) {//槽函数 //打开对应url的网址 QDesktopServices::openUrl(QUrl(url)); } dlgShow::~dlgShow() { }

3.支持的标签 Tags

下表列出了Qt富文本引擎支持的Html标签:

Tag Description Comment
a Anchor or link Supports the href and name attributes.
address Address
b Bold
big Larger font
blockquote Indented paragraph
body Document body Supports the bgcolor attribute, which can be a Qt color name or a #RRGGBB color specification.
br Line break
center Centered paragraph
cite Inline citation Same as i.
code Code Same as tt.
dd Definition data
dfn Definition Same as i.
div Document division Supports the standard block attributes.
dl Definition list Supports the standard block attributes.
dt Definition term Supports the standard block attributes.
em Emphasized Same as i.
font Font size, family, and/or color Supports the following attributes: size, face, and color (Qt color names or #RRGGBB).
h1 Level 1 heading Supports the standard block attributes.
h2 Level 2 heading Supports the standard block attributes.
h3 Level 3 heading Supports the standard block attributes.
h4 Level 4 heading Supports the standard block attributes.
h5 Level 5 heading Supports the standard block attributes.
h6 Level 6 heading Supports the standard block attributes.
head Document header
hr Horizontal line Supports the width attribute, which can be specified as an absolute or relative (%) value.
html HTML document
i Italic
img Image Supports the src, source (for Qt 3 compatibility), width, and height attributes.
kbd User-entered text
meta Meta-information If a text encoding is specified using the meta tag, it is picked up by Qt::codecForHtml(). Likewise, if an encoding is specified to QTextDocument::toHtml(), the encoding is stored using a meta tag, for example:
li List item
nobr Non-breakable text
ol Ordered list Supports the standard list attributes.
p Paragraph Left-aligned by default. Supports the standard block attributes.
pre Preformated text
qt Qt rich-text document Synonym for html. Provided for compatibility with earlier versions of Qt.
s Strikethrough
samp Sample code Same as tt.
small Small font
span Grouped elements
strong Strong Same as b.
sub Subscript
sup Superscript
table Table Supports the following attributes: border, bgcolor (Qt color names or #RRGGBB), cellspacing, cellpadding, width (absolute or relative), and height.
tbody Table body Does nothing.
td Table data cell Supports the standard table cell attributes.
tfoot Table footer Does nothing.
th Table header cell Supports the standard table cell attributes.
thead Table header If the thead tag is specified, it is used when printing tables that span multiple pages.
title Document title The value specified using the title tag is available through QTextDocument::metaInformation().
tr Table row Supports the bgcolor attribute, which can be a Qt color name or a #RRGGBB color specification.
tt Typewrite font
u Underlined
ul Unordered list Supports the standard list attributes.
var Variable Same as i.

4. 对CSS的支持

下表列出了Qt富文本引擎支持的css

Property Values Description
background-color Background color for elements
background-image Background image for elements
color Text foreground color
font-family Font family name
font-size [ small medium
font-style [ normal italic
font-weight [ normal bold
text-decoration none [ underline
font [ [ <’font-style’>
text-indent px First line text indentation in pixels
white-space normal pre
margin-top px Top paragraph margin in pixels
margin-bottom px Bottom paragraph margin in pixels
margin-left px Left paragraph margin in pixels
margin-right px Right paragraph margin in pixels
padding-top px Top table cell padding in pixels
padding-bottom px Bottom table cell padding in pixels
padding-left px Left table cell padding in pixels
padding-right px Right table cell padding in pixels
padding px Shorthand for setting all the padding properties at once.
vertical-align baseline sub
border-color Border color for text tables.
border-style none dotted
background [ <’background-color’>
page-break-before [ auto always ]
page-break-after [ auto always ]
float [ left right
text-transform [ uppercase lowercase ]
font-variant small-caps Perform the smallcaps transformation on the text prior to displaying it.
word-spacing px Specifies an alternate spacing between each word.

赞赏码New

你可能感兴趣的:(Qt,Qt实用Trick)