问题标签 [qfontmetrics]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - QGraphicsView::drawForeground 上的 drawText
我的代码如下。
结果图像
QfontMetrics 似乎没有返回正确的大小。我的代码有什么问题?
我不知道该怎么办了。
QFontMetrics 返回附加图像的白色矩形的大小,但实际的 Text 被绘制得很小。
c++ - 在Qt cpp中按像素获取QString的子字符串
我有一个QString
我可以得到的谁的像素长度,我也可以有一个来自by 的QFontmetrics::width()
字符长度,但在这里我打算削减特定数量的像素。QString
QString::length()
QString
有没有办法QString
通过给出像素大小来获得子字符串?
谢谢!
c++ - windows和Linux中字体渲染的区别,Qt Cpp
我有,
QFontMetrics m_fm(QFont("Arial",14)); 和
m_fm.width("来自项目网络的现有 LAN IP 地址");
返回'297'(在windows上)
谁能告诉我它在linux编译器上返回什么?
如果它在 linux 上有所不同,那为什么会这样呢?
以及我们如何在 Windows 和 linux 上进行相同的字体渲染。
更新:
我有一个 QTableView 单元格,我在其中共同写入来自多个字符串的数据
,我必须在单行中显示 2 行中的数据。(使用 .append("\n"))。
假设列宽是 140,
所以我需要数据以适合单行的 140 像素
因此,我需要像素宽度小于 140 的数据,以便
它可以正确显示。在这种情况下,根据字体(Arial)
,我正在计算
m_fm.width("Existing LAN IP Address from Project Network");
但它在 Linux 中有所不同,因为 windows Arial 字体不可用。
是否有机会在 Linux 系统中不安装 Arial 字体的情况下
获得正确的像素宽度?
提前致谢 !
qt - QFontMetrics 给出等宽字体的奇怪结果
有人可以向我解释这个测试程序的结果吗?
用 Qt5.11 编译这段代码后,我得到了这样的结果:
这种等宽字体的一个字符“W”的大小是 11。我希望由 8 个这样的字符组成的字符串的大小应该是 88。但是 QFontmetrics::width 返回 92!
qt - 为什么 QFontMetrics 提供的宽度与 Qml Rectangle/Text 显示的宽度不匹配
我编写了一个 qml 和 cpp 文件来验证和可视化 QFontMetrics 概念。
main.qml 文件
当我运行这个程序时,QFontMetrics 提供的宽度是:694。但是,在 qml 文件中为 Rectangle 和 Text 设置的宽度是 642,并且也设置了 elide 属性。有了这个逻辑(如 694 > 642),我应该会看到截断。但没有看到截断。
请参考 qml 输出
为什么是这样?无法理解。
qt - Qt在boundingRect中包装文本
我正在用 PyQt 编写一个应用程序,我需要包装我正在绘制的文本。我使用类的boundingRect
方法QFontMetrics
来定义大小然后QPainter.drawText
进行绘制。我需要文本适合给定的矩形。这是我使用的行:
但是,由于 flag Qt.TextWordWrap
,如果文本没有任何空格,则它不会换行并且不适合矩形。我试过Qt.TextWrapAnywhere
了,但即使有空格,这也会把单词分开。Qt.TextFlag
似乎没有任何标志,优先考虑包装单词,并且只有在不可能的情况下才会将单词分开,例如QTextOption.WrapAtWordBoundaryOrAnywhere
. 有没有办法使用boundingRect
and来包装这样的文本drawText
?