gpt4 book ai didi

qt - QT 中的相对字体大小或定义它们的最便携方式

转载 作者:行者123 更新时间:2023-12-04 13:33:50 35 4
gpt4 key购买 nike

来自 Web 开发背景,我现在进入 QT 应用程序开发。

使用 QFonts 我已经看到我显然只有两个选择,在 QT 中定义字体大小;按像素大小或点大小。

在制作网页布局时,我习惯于以相对方式定义所有字体...使用 em 单位是指继承的字体大小,其中 1em 等于容器元素的字体大小, 0.5em 50% 字体大小, 1.5em 大 50%,等等。

我担心我的应用程序的可移植性和设备/操作系统身份。有没有更好的方法来定义这些字体,还是应该坚持使用其中一种方法?
如果可能,我是否可以继承字体大小并以相对单位定义大小,例如 EMS 或百分比?

最佳答案

根据您设计应用程序的方式,恐怕除了担心字体大小之外,您还需要非常小心 特定于平台的字体 .

例如,我刚刚在 Qt Creator 2.3.0(基于 Qt 4.7.4)中运行 Qt Designer - 几乎是最新的稳定代码,并完成了以下操作:

  • 创建了一个新的 Qt Designer 表单(即 .ui 文件)
  • 使它成为一个空的 Widget
  • 添加了 QTextEdit(在设计器的“输入小部件”部分中称为“文本编辑”)
  • 双击 QTextEdit,打开它的属性
  • 查看其来源

  • 这是我看到的:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
    <html><head><meta name="qrichtext" content="1" /><style type="text/css">
    p, li { white-space: pre-wrap; }
    </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; font-weight:400; font-style:normal;">
    <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p></body></html>

    在我对内容进行任何更改之前,请注意使用 Windows 特定字体和非常硬编码的大小: font-family:'MS Shell Dlg 2'; font-size:7.8pt;
    我之前已经向 Qt 的用户支持报告了这个问题,并被告知(通过错误的状态)没有计划修复它。 (有关这些错误的信息,请参阅下面的编辑)

    因此,在工作中,每次发布时,我们都必须搜索所有 .ui 文件,以确保自上一版本以来没有任何平台特定的字体信息潜入任何 .ui 文件中。

    (一两年前,我在 Mac、Windows 和 Linux 上运行 Designer,并显示每个版本都生成了自己的平台特定字体信息,并且默认字体大小非常不同。每个版本都无法在另一个版本上正确显示两个平台!Mac 文本在另外两个平台上太大了,而另外两个在 Mac 上太小了)

    我真的很喜欢 Qt,但我发现在 UI 设计师这样基本的东西中缺乏平台独立性相当令人沮丧。

    编辑 - 来自 TrollTech 的错误信息,2009 年 7 月

    我找到了报告“.ui 跨平台问题 - 字体和大小的可移植性”时的信息。我不知道 2009 年 7 月来自 TrollTech 的这些旧引用编号如何转换为当前的 Qt 问题跟踪:我希望其他人能够将链接更新为当前工作的链接:
  • TrollTech 支持票:N258723
  • 想要为 QLabels 指定相对大小,使用特定于平台的固定大小:
  • 【链接失效】http://www.trolltech.com/developer/task-tracker/index_html?method=entry&id=241089
  • 将来我们如何阻止 Qt Designer 输入特定于平台的字体名称和字体大小?
  • 【链接失效】http://www.qtsoftware.com/developer/task-tracker/index_html?method=entry&id=153335
  • 关于qt - QT 中的相对字体大小或定义它们的最便携方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7381154/

    35 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com