问题标签 [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 - QTextEdit 显示宽度与文本宽度
我正在 Qt 中创建一个“滚动文本”类,使用一个QTextEdit
(只读,无滚动条,moveCursor)和一个QTimer
- 简单且有效。
我的问题是发送给班级的文本比 QTextEdit-box 短(窄)。傻,我同意,但是,作为 Qt 的新手,我没有找到一种简单的方法来比较给定文本的宽度(取决于字体)和可以在其中显示的实际宽度QTextEdit
(在计算 FrameStyle 之后, ETC。)。我想我需要计算像素。
有任何想法吗?谢谢
qt - 为什么 QFontMetrics::boundingRect() 返回错误大小的矩形?
我正在使用 Qt4.7。当我在某些情况下使用 QFontMetrics 呈现我的文本时,我得到了错误的宽度。我的代码是这样的:
我发现 fm.boundingRect(str) 在 dpi 更改时总是返回一个固定的矩形。
qt - 使用 QPainter 的 drawText() 绘制时垂直居中文本
在图像上居中文本时,我的策略是获取该文本的边界矩形并将宽度或高度除以二。在这种情况下,我也做了同样的事情。这是我创建的示例:
这是结果 - 文本位于行下方,而不是居中:
安卓:
Windows:
我使用线条根据度量矩形在文本周围绘制框架:
预期结果是将可见文本准确地围绕给定点/线居中:
为了让您正确看待,这是我遇到的实际
问题:
数字应该在行的中间,而不是在下面。
我正在使用的函数返回大小,包括重音符号和其他不存在的大字符。如何仅针对存在的字符获取以像素为单位的矩形?
qt - 根据窗口高度调整字体 pointSize
我可以选择更改标签上的文本字体大小,现在没有 layout 。如何根据父窗口调整大小的高度更改文本的字体 pointSize。所以我如何计算增加的高度因子,并基于这个因子我可以乘以我的 pointSize 字体。
c++ - QFontMetrics boundingRect
我遇到了 QFontMetrics 'boundingRect' 函数的问题,它没有返回正确的结果。
在调试器中,rctLine 包含:
这非常令人困惑,我希望 x1 和 y1 都为 0,因为没有传递参考位置,我希望 x2 和 y2 都是正数。
返回的矩形不正确,如果我将它与 drawText 和对齐一起使用,则显示中缺少部分字符串。
我知道还有其他关于此函数如何返回错误结果的帖子,我已经看过这些帖子,但它们对我没有帮助。
我在 RedHat 7.2 上使用 Qt5.6。
我也试过:
其中 pobjParent 是父小部件, rctParent 包含:
intAlign 包含 33(左,上)
在这种情况下,rctLine 返回:
但是边界矩形仍然很小,渲染时缺少部分“S”。
c++ - Qt 打印 - QFontMetrics 类
我是 Qt 新手,正在探索 QPrinter / QPainter
根据文档,为了以毫米为单位打印,考虑到它的分辨率,坐标必须转换为打印机的单位。所以,我写了以下代码:
这适用于打印线等。
现在我必须测量文本,所以根据文档我使用了 QFontMetrics() 类。
Painter->fontMetrics().width(stringToMeasure)
根据文档,问题在于以像素为单位返回宽度。我怎样才能把它翻译成mm?
任何帮助将不胜感激!
qt - QFontMetrics 可以考虑 Windows dpi 缩放吗?
我的印象是,如果您在应用程序中执行此操作
然后字体在高分辨率显示器上自动放大。如果您在 Windows 10 中显式增加字体缩放(设置-->系统->自定义缩放),则相同。
但是,在 Windows 10 中以 100% 和 200% 缩放运行以下代码时,它不会返回两倍大小。
奇怪的是只有1个像素的差异。
这是为什么?我可以让 QFontMetrics 考虑 Windows 缩放吗?还是我需要使用逻辑/物理 DPI 来推断字体大小必须增加 2 倍?
谢谢
c++ - 如何设置动态 QFont 大小?
我遇到了 QFontMetrics?
http://doc.qt.io/qt-5/qfontmetrics.html
这给出了当前字体的高度和宽度。
我需要在使用 Scale 类的不同监视器上以全屏模式运行我的应用程序。http://doc.qt.io/qt-5/qml-qtquick-scale.html
这将返回当前屏幕的高度和宽度。
有没有办法使用 QFontMetrics 或其他任何东西来根据显示器大小更改字体大小?
Draw_on_qimage
是一个cpp类。
c++ - 如何解释 QFontMetrics 结果?
我无法理解我从中获得的价值QFontMetrics
使用以下屏幕分辨率,我得到:
- ) 1920/1080: 256/16
- ) 3840/2160: 178/10 高 DPI 支持
qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1")
- ) 3840/2160: 536/32 不支持高 DPI
我的理解是我确实得到了像素宽度/高度。我想知道为什么我在雇佣决议时会得到这么低的身高(见 2)。我宁愿期望它反过来 - 使用更多像素。
我可以看到,在 1 和 3 之间(几乎)有因子 2,这是有道理的。但是随后(使用 3,不支持 DPI)UI 不可读(由于高 DPI 屏幕太小)。那么2如何适应,这有一些奇怪的结果。
有人能对这些价值观的解释给出提示吗?
备注:与样式表/Qt Designer 对高 dpi 屏幕的支持有关吗?我试图找到的是我的 UI 窗口在不同分辨率/平台上的合理宽度/高度
好评论,我明白了。使用 1280/780 的“虚拟屏幕”,使用 hi-dpi Qt 以 1:3 的比例缩放。我想知道我是否可以手动调整像素比率。就我而言,它是通过设置发生的qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1")
。是否有机会将其设置为 2:1?
- ) “桌面 w1920 w1080 - 比率:1 | 80 个字符:w560 h16 | 43 个字符:w256 h16”
- ) “桌面 w1280 w720 hi DPI 比率:3 | 80 个字符:w400 h10 | 43 个字符:w178 h10”
- ) “桌面 w3840 w2160 - 比率:1 | 80 个字符:w1200 h32 | 43 个字符:w536 h32”