- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
有没有办法在 Qt 5 中绘制带有小数点大小的文本。我正在尝试使用 QFont::setPointSizeF()
但它似乎在我尝试过的任何平台(mac/linux/windows)上都不起作用,并且点大小总是四舍五入。
QFontDatabase::isScalable
和 QFontDatabase::isSmoothlyScalable
在所有情况下都为字体返回 true
。
我尝试设置各种QFont::fontHintingPreference
和QPainter::RenderHint
。
我可以使用 QFont::setPixelSize
和 QPainter::scale
来解决这个问题,但是 QFont::setPointSizeF
似乎很奇怪> 坏了?!
我是否遗漏了什么或做错了什么?
显示问题的简单程序:
#include <QtWidgets>
class MyWidget : public QWidget
{
public:
MyWidget() : QWidget(0)
{
}
protected:
void paintEvent(QPaintEvent */*e*/)
{
QPainter p(this);
int y=10;
for (qreal i = 10; i < 20; i += 0.2) {
QFont font("Times"); // or any font font in the system
font.setPointSizeF(i);
p.setFont(font);
p.drawText(1, y, QString("This should be point size %1 but is %2!").arg(font.pointSizeF()).arg(QFontInfo(font).pointSizeF()));
y += i;
}
}
};
int main(int argc, char **argv)
{
QApplication app(argc, argv);
MyWidget widget;
widget.resize(400, 740);
widget.show();
return app.exec();
}
最佳答案
这不是意外行为。请参阅以下行:
"This should be point size 10 but is 9.75!"
"This should be point size 10.2 but is 10.5!"
"This should be point size 10.4 but is 10.5!"
"This should be point size 10.6 but is 10.5!"
"This should be point size 10.8 but is 10.5!"
"This should be point size 11 but is 11.25!"
"This should be point size 11.2 but is 11.25!"
"This should be point size 11.4 but is 11.25!"
"This should be point size 11.6 but is 11.25!"
"This should be point size 11.8 but is 12!"
"This should be point size 12 but is 12!"
"This should be point size 12.2 but is 12!"
...
然后,还要检查文档:
将磅值设置为 pointSize。磅值必须大于零。可能无法在所有平台上实现请求的精度。
关于c++ - QPainter drawText 小数点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19036047/
绘制文本选项 有一个 '画' 指定是否应绘制文本的表达式。 http://www.ffmpeg.org/ffmpeg-filters.html#drawtext-1 我发现我们可以使用以下表达式在特定
我正在使用 ffmpeg 库在特定时间在视频上绘制文本,我成功了 我正在使用此命令将文本从上到下移动,但我无法确定 x 和 Y 从 x,y 移动到特定 x,y ffmpeg -i VideoInput
我们正在尝试使用 ffmpeg drawtext 来支持印地语字体。但是数据的顺序是不正确的。 印地语文本的 unicode 是这样传递的 1. पिता माता िस्रफ 但输出呈现为 Outp
我正在开发一个对 FFmpeg 进行系统调用的应用程序。 我找到了一种方法来隔离和淡出 drawtext 过滤器,但是渲染时间增加了大约 5 倍。 我只是想看看我提出的命令是否有明显错误。 ffmpe
我正在尝试设置此 FFmpeg 命令的 drawtext 何时开始,我尝试使用 start_number 但看起来它不会成功。 ffmpeg -i 1.mp4 -acodec aac -keyint_
我正在尝试使用 ffmpeg drawtext 过滤器将藏文呈现为视频。但有些字符没有正确呈现。 例如: སྤྱི་སྟེགས Expected render output 一些垂直太长的字符无法正确
我使用 shell_exec 在 PHP 中运行以下命令: ffmpeg -i $sourcePath -vf \"drawtext=text='$txt':fontfile='$fontPath':
我正在使用 ffmpeg 库在特定时间在视频上绘制文本,我成功了 我正在使用此命令将文本从上到下移动,但我无法确定 x 和 Y 从 x,y 移动到特定 x,y ffmpeg -i VideoInput
我在 ffmpeg 中为 drawtext 使用以下参数 ffmpeg -i input.gif -vf drawtext="fontfile='ariblk.ttf':text=' Hello
我必须在视频开头添加声明符几秒钟,水平居中,绿色背景,如何使用单个命令来完成并覆盖现有视频而不重新编码 最佳答案 如果您愿意将免责声明图像转换为视频剪辑,则可以将两个视频合并为一个序列而无需重新编码。
是否可以在一个 ffmpeg 命令中包含电影覆盖和绘制文本。 我尝试了命令,但它给出了错误 [drawtext @ 03B2BBC0] Key '"fontsize' not found. [draw
将一些代码从 D2007 移植到 XE2 时,我遇到了一个我无法理解的编译器错误。请参阅以下示例: procedure TForm1.FormPaint(Sender: TObject); var
如何在一张图像上显示多行 我尝试了命令,但它给出了错误 [NULL @ 0203D780] Unable to find a suitable output format for '[in][T1]'
我正在 Canvas 上绘制关于现在轮到谁的信息。我使用 validate() 两次使屏幕无效并再次绘制文本。但是使用 invalidate() 我正在重绘所有板,这会持续很长时间,有什么方法可以使
我在 Win32 程序中使用 DrawText 函数在屏幕顶部中央显示“本地”,在中央显示“服务器”。当我运行程序时,它显示“本地”而不是“服务器”。这是我的消息循环中的代码: case WM_PAI
我想在屏幕 Canvas 上绘制与第一个字符串相邻的第二个字符串。第二个字符串的起点应该是第一个字符串的宽度。我使用了Android的paint.measuretext()方法。但它返回的宽度小于实际
我的主要目标是收集用户输入并将其转换为黑色背景的视频,然后输入文本将从左向右移动,同时视频在背景中播放音频。 目前有人建议我使用“drawtext”,但我发现它不起作用。 我的命令: ffmpeg -
有没有办法检测文本何时传递给 DrawText被剪掉了? 我希望能够在给定的矩形中绘制任何文本(即已被 DrawText 剪裁,这意味着用户可能会错过文本的某些重要部分)。 我想获得显示剪切文本所需的
我正在使用 DrawText 将一些文本绘制到我在插件中制作的一堆矩形中。 现在我从嵌入式 python 接收到一个字符指针: char *a=PyString_AsString(value); 当我
我目前正在创建一个图像编辑器,并尝试使用 canvas.drawText() 在图像上绘制文本。到目前为止,我已经成功地做到了这一点,但是当用户输入太长的文本时,文本只会在页面外的一行上继续,并且不会
我是一名优秀的程序员,十分优秀!