Qt 测量文字展示尺寸的两种方式

这篇具有很好参考价值的文章主要介绍了Qt 测量文字展示尺寸的两种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

自适应宽度下测量高度

比如我想求字符串中最大的字符宽度,这个时候对每个字符的宽度求值肯定不是固定的,所以可以先用MAXFLOAT做约束,自适应宽度,代码如下:

    QFont font;
    QFontMetricsF fontMetrics(font);
    QRectF textRect;
    QRectF rect(0, 0, width, MAXFLOAT);
    QRectF textRect = fontMetrics.boundingRect(rect, Qt::AlignTop | Qt::AlignLeft | Qt::TextWordWrap, text);

指定宽度下测量高度

某些情况下我想做文字的自动折行,指定了文本展示框的宽度之后,高度要通过折行策略达到自适应的效果:文章来源地址https://www.toymoban.com/news/detail-737633.html

    QFont font;
    QFontMetricsF fontMetrics(font);
	QTextOption option;
    option.setWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere);

    qreal y = 0;
    qreal leading = fontMetrics.leading();
    QStringList paragraphs = text.split("\n");

    for (const QString &paragraph : paragraphs)
    {
        QTextLayout layout;
        layout.setText(paragraph);
        layout.setFont(font);
        layout.setTextOption(option);

        layout.beginLayout();
        while (true)
        {
            QTextLine line = layout.createLine();
            if (!line.isValid())
                break;

            line.setLineWidth(width);
            line.setPosition(QPointF(0, y));
            y += line.height() + leading;
        }
        layout.endLayout();
    }
    QRectF textRect = QRectF(0, 0, width, y);

到了这里,关于Qt 测量文字展示尺寸的两种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QT操作excel的两种方式 QT基础入门【Excel的操作】

    QT操作excel的方式有两种:QAxObject 和QtXlsx QAxObject是通过调用office或者wps组件来实现对excel图表的操作的。只有装office软件或者wps软件就可以实现,但是 如果只装了office软件,有时可以用有时不可以用; 如果只装wps软件,完全不能使用; 如果两个都装了,基本上结果不可控;

    2024年02月12日
    浏览(39)
  • Qt Http请求,post和get的两种方式

    今天我们介绍一下QT的http请求,这里有post和get两种方式 一、post请求方式:参数分为网址和具体请求值两个部分,有时候还需要设置头信息,看具体情况定 二、get请求方式:参数和网址拼接到一起请求 三、主要区别: get用于请求获取数据,post向指定的资源创建修改数据 g

    2024年02月15日
    浏览(52)
  • qt创建线程的两种方法

    第一种:继承QThread类 方法描述 1。类MyThread继承QThread, 2。重载MyThread中的run()函数,在run()函数中写入需要执行的工作; 3。调用start()函数来启动线程。 不是真的跨线程,子线程ID和主线程ID是同一个 第二种:QObject::moveToThread 这就是我要的子线程 //用于托管我的子线程

    2024年04月27日
    浏览(40)
  • [Qt学习笔记]Halcon窗口界面上显示文字的字体尺寸、样式修改

    养成良好的查资料习惯,可以实现事半功倍。 在Halcon12中,有set_font和set_display_font两个算子,其中set_display_font是本地函数形式,所以最终的实现算子为set_font. 按照不同的系统环境下,使用方法略有不同: 不同的系统下使用的方法不同,原本以为比较简单,直接按照文档的

    2024年03月20日
    浏览(55)
  • Qt+OpenCV显示图片的两种方法(代码演示)

    导  读     本文主要介绍Qt+OpenCV显示图像的两种方法,并通过代码演示效果。 背景介绍     OpenCV本身提供了一些GUI方法,但使用起来仍有局限性。以C++为例,实际应用中我们大多会使用Qt或MFC来编写GUI程序。相较之下,Qt比MFC更易上手且界面样式更丰富,所以越来越多的

    2024年02月07日
    浏览(45)
  • 【Qt】QThread & moveTothread-多线程的两种实现方法

    一、如何理解多线程 二、实现多线程的两种方式(面向应用) 2.1 继承 QThread 的类 2.2 (推荐这种方式)函数 moveTothread() 三、多线程的释放问题(善后工作) 类似我们单片机的编程,如在 Keil5 中对 51 单片机或者 STM32 单片机进行编程时,如果我们使用模块化编程,那么 main.c 文

    2024年02月01日
    浏览(45)
  • 使用Qt Designer为您的Qt for Python项目创建基于Qt Widgets的图形界面的两种方法

    本页介绍如何使用Qt Designer为您的Qt for Python项目创建基于Qt Widgets的图形界面。Qt Designer是一个图形UI设计工具,可以作为独立的二进制文件(pyside6-designer)提供,也可以嵌入到Qt Creator IDE中。它在Qt Creator中的使用在Using Qt Designer中描述。 设计存储在.ui文件中,这是一种基于

    2024年02月07日
    浏览(48)
  • selenium UI自动化中文件上传的两种方式

    文件上传是自动化中很常见的一个功能,那么对于文件上传你又有多少了解呢?请往下看 1、被测产品中文件上传的功能非常普遍,一般情况下需要将准备好的文件放在预定的路径下,然后在自动化测试的脚本中,去预置的路径下获取文件即可。 2、selenium UI自动化中文件上传

    2024年02月13日
    浏览(39)
  • Qt QWidget 设置样式表不生效的两种解决方案

    在进行Qt开发的时候,我们往往会遇到这样的场景:         使用Qt Designer 设计界面,但在Qt Designer里设置好样式表,使用快捷键 shift + alt + r 进行预览,样式都是正常的,但程序运行起来,样式就不生效了。 例如设计一个列表,我们将一条数据(一行)设计设计成一个类

    2023年04月10日
    浏览(45)
  • Pyqt5将.ui文件转换成.py文件的两种方式

    PyQt 5安装成功后,pyuic5命令默认安装在%/python3x/Scripts目录下。我的pyuic5的安装路径是E:python35.Scripts。 如果想将firstMainWin.ui转换成.py文件,输入以下命令即可: 注意:如果输入pyuic5命令没有得到正确提示,而是提示“pyuic5不是内部命令或外部命令,也不是可运行的程序或批处理

    2024年02月11日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包