QStaticText功能方法(QT5.12)


//for starf study

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include<QDebug>
#include<QStaticText>
#include<QPainter>

//当文本及其布局很少更新时,QStaticText类可以优化文本的绘制。
//QStaticText提供了一种缓存文本块布局数据的方法,这样可以比使用QPaint::drawText()更高效地绘制文本块
//QStaticText类可用于模拟QPaint::drawText()在没有边界的特定点上的行为,以及在使用边界矩形调用QPaint::drawText()时。
//如果不需要边框,请创建QStaticText对象,而不设置首选文本宽度。文本将占据一行。
// 显示文本的优化类
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

}

MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    QStaticText m_staticText("TEST QStaticText");
    painter.drawStaticText(0, 0, m_staticText);
    qDebug()<<m_staticText.performanceHint();//返回为QStaticText设置的性能提示。
        //QStaticText::ModerateCaching   以低内存成本实现高性能的基本缓存。
        //QStaticText::AggressiveCaching 如果可用,请使用其他缓存。这可能会以更高的内存成本提高性能。
    m_staticText.setPerformanceHint(QStaticText::ModerateCaching);//设置性能提示
    m_staticText.prepare( QTransform(), QFont("宋体",15,25)); //讲文本按照给定变换矩阵和字体变换字符串
    m_staticText.setText("static text for painter");
    m_staticText.setTextFormat(Qt::PlainText);//设置文本格式
    //Qt::PlainText  文本字符串被解释为纯文本字符串。
    //Qt::RichText  文本字符串被解释为富文本字符串。
    //Qt::AutoText  如果Qt::mightBeRichText()返回true,则文本字符串解释为Qt::RichText,否则解释为Qt::PlainText。
    m_staticText.setTextOption(QTextOption()); //将控制布局过程的文本选项结构设置为给定的文本选项。
    m_staticText.setTextWidth(120);//设置此QStaticText的首选宽度。如果文本宽度大于指定宽度,
            //它将被分成多行并垂直增长。如果无法将文本拆分为多行,则它将大于指定的textWidth。
            // 将首选文本宽度设置为负数将导致文本无界。
    m_staticText.size(); //返回尺寸
    QStaticText staticText("TEST QStaticText");
    m_staticText.swap(staticText); //交换两个对象
    qDebug()<<m_staticText.text(); //返回文本
    qDebug()<<m_staticText.textFormat(); //返回格式
    m_staticText.textOption(); //返回文本选项
    qDebug()<<m_staticText.textWidth(); //返回文本宽度
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值