精华内容
下载资源
问答
  • 简述对于QTableView中的显示,我们前面介绍过很多种,其中包括:文本、进度条、复选框等,今天我们介绍一下关于富文本显示。可能绝大多数小伙伴会通过QAbstractTableModel中的data来实现,可是现实告诉我们,那是...

    简述

    对于QTableView中的显示,我们前面介绍过很多种,其中包括:文本、进度条、复选框等,今天我们介绍一下关于富文本的显示。

    可能绝大多数小伙伴会通过QAbstractTableModel中的data来实现,可是现实告诉我们,那是行不通的,那么我们如何去显示呢?请看正文。

    效果

    6db5efd3e4680e3233e60ad069eebd7b.png

    源码

    下面我们使用QAbstractItemDelegate来进行富文本的显示,主要通过QTextDocument设置HTML代码来实现。

    void CheckBoxDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const

    {

    QStyleOptionViewItem viewOption(option);

    initStyleOption(&viewOption, index);

    if (option.state.testFlag(QStyle::State_HasFocus))

    viewOption.state = viewOption.state ^ QStyle::State_HasFocus;

    // ... 省略

    // 设置显示文本为空,使用默认样式

    QStyle *pStyle = viewOption.widget? viewOption.widget->style() : QApplication::style();

    viewOption.text = "";

    pStyle->drawControl(QStyle::CE_ItemViewItem, &viewOption, painter, viewOption.widget);

    // 需要显示的HTML

    QString strHTML = QString(" \

    font{font-size:18px; color:white;} #f{font-size:26px; color: green;} \

    \

    \

    %1%2 \

    logo%5C%22 \

    \

    ").arg("I am a ").arg("Qter");

    QTextDocument doc;

    doc.setHtml(strHTML);

    QAbstractTextDocumentLayout::PaintContext paintContext;

    QRect textRect = pStyle->subElementRect(QStyle::SE_ItemViewItemText, &viewOption);

    painter->save();

    // 坐标变换,将左上角设置为原点

    painter->translate(textRect.topLeft());

    // 设置HTML绘制区域

    painter->setClipRect(textRect.translated(-textRect.topLeft()));

    doc.documentLayout()->draw(painter, paintContext);

    painter->restore();

    }

    分析

    首先我们需要保留原有样式,所以设置QStyleOptionViewItem的文本为空,然后调用QStyle的drawControl接口来进行绘制,然后通过QTextDocument设置HTML代码,利用QPainter来进行文本的绘制,绘制区域通过整个文本区域经过坐标变换后得到的。

    展开全文
  • 0 前言动画QLabel 功能不少, 能够用来显示图片 动画 富文本this1 效果.net对于图片和动画, 先添加到资源文件再使用3d右键 Resources -> 添加现有文件code 使用资源时, 在Resources中选择使用的图片或动画, 右键...

    0 前言动画

    QLabel 功能不少, 能够用来显示图片 动画 富文本this

    1 效果.net

    对于图片和动画, 先添加到资源文件再使用3d

    右键 Resources -> 添加现有文件code

    e81dcd9128917d3ef966023388bed898.png

    使用资源时, 在Resources中选择使用的图片或动画, 右键点击复制资源路径到剪贴板获取路径blog

    400f4eba3eada21c0aebf842a064783b.png

    1> 图片 (png)图片

    557dfe0c6566a94407d5196054672e5d.png

    2> 动画 (gif)资源

    这里只是截图, 源文件是gif动画get

    e88a0ba78860002436529f2d82099e7a.png

    3> 富文本 (网址)源码

    e4075fec339c593b49d113da522c4c54.png

    2 环境

    win10 + Qt 5.14.0

    3 源码

    只贴上功能代码, 附上两张图片的下载地址 点击下载

    label = new QLabel(this);

    label->setText("Label");

    // 图片

    label->setPixmap(QPixmap("://image/george.png"));

    // 动画

    QMovie *movie = new QMovie("://image/you.gif");

    movie->start();

    label->setMovie(movie);

    // 网址

    label->setText("

    bing

    ");

    label->setOpenExternalLinks(true);

    // 自动尺寸

    label->setScaledContents(true);

    展开全文
  • Qt 之 QTableView 显示富文本

    万次阅读 2016-03-24 16:57:09
    简述对于QTableView中的显示,我们前面介绍过很多种,其中包括:文本、进度条、复选框等,今天我们介绍一下关于富文本显示。可能绝大多数小伙伴会通过QAbstractTableModel中的data来实现,可是现实告诉我们,那是...

    简述

    对于QTableView中的显示,我们前面介绍过很多种,其中包括:文本、进度条、复选框等,今天我们介绍一下关于富文本的显示。

    可能绝大多数小伙伴会通过QAbstractTableModel中的data来实现,可是现实告诉我们,那是行不通的,那么我们如何去显示呢?请看正文。

    | 版权声明:一去、二三里,未经博主允许不得转载。

    效果

    这里写图片描述

    源码

    下面我们使用QAbstractItemDelegate来进行富文本的显示,主要通过QTextDocument设置HTML代码来实现。

    void CheckBoxDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
    {
        QStyleOptionViewItem viewOption(option);
        initStyleOption(&viewOption, index);
        if (option.state.testFlag(QStyle::State_HasFocus))
            viewOption.state = viewOption.state ^ QStyle::State_HasFocus;
    
        // ... 省略
        // 设置显示文本为空,使用默认样式
        QStyle *pStyle = viewOption.widget? viewOption.widget->style() : QApplication::style();
    
        viewOption.text = "";
        pStyle->drawControl(QStyle::CE_ItemViewItem, &viewOption, painter, viewOption.widget);
    
        // 需要显示的HTML
        QString strHTML = QString("<html> \
                                  <head> \
                                  <style> \
                                  font{font-size:18px; color:white;} #f{font-size:26px; color: green;} \
                                  </style> \
                                  </head> \
                                  <body>\
                                  <font>%1</font><font id=\"f\">%2</font> \
                                  <img src=\":/Images/logo\" width=\"40\" height=\"40\"> \
                                  </body> \
                                  </html>").arg("I am a ").arg("Qter");
    
        QTextDocument doc;
        doc.setHtml(strHTML);
    
        QAbstractTextDocumentLayout::PaintContext paintContext;
    
        QRect textRect = pStyle->subElementRect(QStyle::SE_ItemViewItemText, &viewOption);
        painter->save();
        // 坐标变换,将左上角设置为原点
        painter->translate(textRect.topLeft());
        // 设置HTML绘制区域
        painter->setClipRect(textRect.translated(-textRect.topLeft()));
    
        doc.documentLayout()->draw(painter, paintContext);
        painter->restore();
    }

    分析

    首先我们需要保留原有样式,所以设置QStyleOptionViewItem的文本为空,然后调用QStyle的drawControl接口来进行绘制,然后通过QTextDocument设置HTML代码,利用QPainter来进行文本的绘制,绘制区域通过整个文本区域经过坐标变换后得到的。

    展开全文
  • 原创文章,欢迎转载。...演示2.1. 代码2.2. 关于打开超链接的两种方式说明3.支持的标签 Tags4....说明Qt的文本窗体部件能够显示富文本,使用HTML4 标记。能够以这种方式显示富文本的窗体控件有: QTextD...

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

    原文链接: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.演示

    0c423c7e20c145c5d48ce3487c7a84e2.png

    2.1. 代码

    #include

    #include

    int main(int argc, char *argv[])

    {

    QApplication a(argc, argv);

    QString str;

    str = QString(new QLabel(str);

    lab->setOpenExternalLinks(true);//如果没有这句,就只能通过linkActivated信号,连接到自定义槽函数中打开

    lab->setWindowTitle("Test Html support");

    lab->show();

    return a.exec();

    }

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

    简单方式,用Qt自带的setOpenExternalLinks(true)函数进行设置;

    用通过linkActivated信号,连接到自定义槽函数中打开超链接。

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

    62d9dca8fee79789c198c661a11d625f.png

    文件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(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

    [ [

    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

    [

    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.

    4191d8c20a862673ad330051c03dbe17.png

    展开全文
  • QTableView 标题换行显示富文本显示 ,多种代理,可以解决一些问题,有点贵,慎下载
  • QLabel可以说是Qt中最常见的控件之一,主要用来显示文本文字、显示图片、显示gif动图、显示富文本信息。本文将从以下几个方面对QLabel进行介绍: [1]显示及获取文本文字 [2]显示图片 [3]显示动图 [4]显示富文本...
  • 对于QTableView中的显示,我们前面介绍过很多种,其中包括:文本、进度条、复选框等,今天我们介绍一下关于富文本显示。 可能绝大多数小伙伴会通过QAbstractTableModel中的data来实现,可是现实告诉我们,那是行...
  • 前言 感觉经常会用到富文本,比如在一句话中有两...显示富文本的几种方式 若是以富文本字符串来决定界面内容,这是一种能动性很大的显示方式,当然界面内容比较简单,这样才合理。 Text显示富文本 Text本身就支持.
  • QT富文本转换成pdf

    2017-05-22 17:18:52
     Qt富文本的处理,主要有几个感兴趣的知识点才写下这篇文章,将文本或图片转换成pdf格式、文件直接拖拽到文本框中、双击对程序全屏和缩小、滚动滑轮对文字放大缩小及安装事件过滤器通过键盘的上下按键对文本放大...
  • 若该文为原创文章,未经允许不得转载 原博主博客地址:...本文章博客地址: 各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究 目录 前话 富文本处理 概述 富文本文档结构 ...
  • Qt TextEdit富文本操作 笔记

    千次阅读 2018-01-20 10:28:55
    下面代码包含了打开文件,拖拽文件,插入框架,文本块,表格,列表,图片,将所选内容变成斜体,添加下划线以及从后往前查找内容并高亮的功能。废话不多说,代码贴上: 头文件: #ifndef MAINWINDOW_H #define ...
  • 文本文档的结构化表示将其内容表示为文本块、框架、表和其他对象的层次结构。它们为文档提供了一个逻辑结构,并描述了如何显示它们的内容。通常,框架和表用于对其他结构进行分组,而文本块包含实际...富文本文档通...
  • QT富文本编程

    2020-12-23 00:40:48
    富文本编程-文本块 富文本编程-文档边框格式 #include <QTextFormat> #include <QTextFrame> QTextDocument *document=ui->textEdit->document(); //获取文本对象 QTextFrame*rootFrame=...
  • QLabel 功能很多, 可以用来显示图片 动画 富文本 1 效果 对于图片和动画, 先添加到资源文件再使用 右键 Resources -> 添加现有文件 使用资源时, 在Resources中选择使用的图片或动画, 右键点击复制资源...
  • Qt 富文本处理(一)

    2019-09-28 07:28:50
    Qt 富文本处理(一) 原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://devbean.blog.51cto.com/448512/442632 最近使用 Qt 做一个离线博客...
  • 若该文为原创文章,未经允许不得转载 原博主博客地址:...本文章博客地址: 各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究 目录 前话 文本光标接口 概述 基于光标的编辑 ...
  • 转载请以连接形式标明本文标题和地址:本文标题:Qt富文本编辑器QTextDocument本文地址:https://www.techieliang.com/2017/12/726/1. 介绍对于文本编辑,qt提供了不少控件htmlQLineEdit:单行文本输入,好比用户名...
  • Qt 框架富文本开发要点 QTextEdit使用 QTextCursor接口使用 QTextDocument使用 QTextEdit QTextEdit是Qt框架推荐的用于富文本编辑的组建 支持: html4语法 支持富文本展示和编辑 提供了程序化编辑接口 这此实例...
  •   Qt富文本处理使用了Scribe框架,提供一组用于读取和操作结构化富文本文档(RTF)的类。 与以前的Qt支持富文本不同,新类围绕QTextDocument类而不是原始文本信息。 这使开发人员无需创建中间标记格式的内容就可以...
  • Qt 富文本处理

    2016-10-14 16:31:00
    富文本处理 所有的类围绕 QTextDocument 展开, 它保证了用户可以创建和修改 富文本块, 而无须定义中间语言。 一个 QTextDocument 可以通过两个接口操作, 一个是用于编辑的 Cusor based 接口, 一个是只读的文档...
  • 去年折腾的一个项目,其中的某个部分就是在一段文字中的重点突出某个符号,采用不同的字体和颜色,一开始我还不太明白,后来才开始理解了原来是要富文本显示,这块目前用QT实现,然后查了一些富文本的例子,QLabel...
  • Qt富文本编辑器QTextDocument

    千次阅读 2017-12-20 13:17:31
    介绍 对于文本编辑,qt提供了很多控件 ... QTextEdit:富文本编辑器,支持html显示,可以用sethtml/tohtml进行html文本操作或使用,也可利用setPlainText、toPlainText进行纯文本操作 QPlainTextEd...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,634
精华内容 653
关键字:

qt显示富文本