问题标签 [qfont]

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.

0 投票
1 回答
582 浏览

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 字体的情况下 获得正确的像素宽度?
提前致谢 !

0 投票
1 回答
331 浏览

qt - QFontMetrics 给出等宽字体的奇怪结果

有人可以向我解释这个测试程序的结果吗?

用 Qt5.11 编译这段代码后,我得到了这样的结果:

这种等宽字体的一个字符“W”的大小是 11。我希望由 8 个这样的字符组成的字符串的大小应该是 88。但是 QFontmetrics::width 返回 92!

0 投票
2 回答
841 浏览

python - 为什么 QFontDialog.getFont() 总是返回相同的字体?

每次我QFontDialog.getFont()用来获取字体时,它都会返回相同的QFont对象。

上面是代码段,下面是结果(我做了不同的选择,但QLabel我得到的字体和我得到的字体getFont()总是一样的)。


更新

以下是有关我的环境的一些信息:

  • macOS 莫哈韦
  • PyQt5
  • 蟒蛇 3.6

我已经通过@ekhumoro 测试了代码,结果很奇怪:

0 投票
1 回答
1593 浏览

c++ - 从 QFontDatabase::addApplicationFont 获取字体系列名称

我正在使用 QFontDatabase:addApplicationFont,它按预期工作,但我想从它加载的最后一个 ttf 文件中获取系列字体名称,因为它的预期用途是让用户使用他们指向的任何字体。

我主要想知道这在 QFont 中是否可行,或者我是否必须依赖不同的库。

0 投票
1 回答
32 浏览

python - 如何为小部件创建不同的字体大小但允许它们在 PySide2 中使用字体对话框进行缩放?

假设我有 3 个标签,每个标签都应该有不同大小的文本。检查此示例代码:

标有“字体”的按钮将打开一个标准的 Qt 字体对话框。当我运行它时,我可以看到当我通过对话框更改字体大小时,表格的标题和按钮中的文本会改变大小。但是具有固定字体大小的标签不会改变。如果我希望它们随着字体大小的变化而改变大小怎么办?如何“缩放”这些小部件的字体大小?

0 投票
1 回答
2517 浏览

c++ - 设置 QFont 的颜色

我有一个“QGraphicsScene”场景并正在尝试使用

在场景中添加一些文本。有效。但是,我尝试更改文本颜色,但找不到设置“QFont”颜色的方法。我没有找到 'font.setColor' 类型的方法。

有什么建议吗?

0 投票
1 回答
140 浏览

qt - 为什么 QFontMetrics 提供的宽度与 Qml Rectangle/Text 显示的宽度不匹配

我编写了一个 qml 和 cpp 文件来验证和可视化 QFontMetrics 概念。

main.qml 文件

当我运行这个程序时,QFontMetrics 提供的宽度是:694。但是,在 qml 文件中为 Rectangle 和 Text 设置的宽度是 642,并且也设置了 elide 属性。有了这个逻辑(如 694 > 642),我应该会看到截断。但没有看到截断。

请参考 qml 输出

为什么是这样?无法理解。

0 投票
1 回答
78 浏览

qt - Qt/ Qml Frobihser 字体在 Linux 和 Windows 环境中的行为不同

我编写了一个 qtquickapplication 示例程序来在给定的矩形内显示文本“无”。矩形边框颜色设置为红色以可视化文本“无”是否在给定的宽度和高度内正确拟合。

我分别为 Windows 和 Linux 环境编译了相同的程序。我被奇怪的行为困住了。

使用相同的代码和字体(Frobisher),文本“none”在矩形边界内正确拟合,但在 Windows 环境中被截断。

这是什么原因?为什么字体的行为不同?我错过了什么吗?

Qt Linux 环境输出 Qt Windows 环境输出

主文件

main.qml

0 投票
0 回答
95 浏览

c++ - QApplication setFont() 和 QTimer

当我为 Qt 应用程序设置字体时,它对在QTimer'stimeout()信号上执行的代码部分没有影响。

主文件

主窗口.h

主窗口.cpp

此代码的输出:

但是当我添加一些代码时

一切正常:

它看起来像主线程并且QTimer使用不同QCoreApplication::instance,但我检查qApp->applicationPid()过,它是相同的。
是否可以一次为所有应用程序设置相同的字体?

UPD:我刚刚注意到,Qt 5.14.1 存在问题,该版本目前在 Gentoo Linux 上是默认的。
使用 Qt 5.12.8,使用“调试”选项从源代码编译,它可以正常工作。

0 投票
1 回答
719 浏览

c++ - 从 QFontDatabase 设置 QFont 将所有标签设置为等宽字体?Qt C++

我正在尝试将一个 QLabel 设置为等宽字体。默认情况下,我在设计器中将所有其他标签设置为“Arame-Regular”。通常,尝试在设计器中将我的任何标签设置为“Arame-Mono”(等宽字体)都不起作用。他们保持规律。

在我的 mainwindow.cpp 中的这段代码之后,应用程序中的每个标签都变为等宽:

这解决了部分问题,我猜可以使用等宽字体,但我不希望应用程序中的每个标签都设置为等宽字体。我怎样才能只处理这个特定的标签来应用等宽字体,并保持所有其他标签的原样?

另一个副作用是我在启动时收到此消息:

我都在我的 Mac 上本地安装了字体并添加到我的 .pro 文件中。字体位于项目目录内的字体文件夹中:

任何帮助表示赞赏!