无需 GUI 即可获取字体规格(控制台模式)

2023-12-28

假设一些图像必须由 Qt 控制台程序生成,并且字体规格内部算法需要(它们使用文字宽度/高度作为计算应发生绘图的位置的输入)。该程序必须可以在没有任何 GUI 的 Linux 上运行(运行级别 3,基本上是没有任何显示服务器的集群)。

Problem:QFontMetrics 仅在 GUI 模式下运行 Qt 应用程序时可用。
有没有解决方法可以在没有任何显示服务器的情况下获取字符串指标?


好的,经过补充评论后,我想我理解你的问题。 就这样做:

include <QApplication>

int main(int argv, char **args)
{
    QApplication app(argv, args);
    QApplication::processEvents(); // this should allow `QApplication` to complete its initialization

    // do here whatever you need 

    return 0; // or some other value to report errors
}

您也可以尝试使用QGuiApplication此版本不需要(不使用)小部件。

也可以看看文档中的示例 http://doc.qt.io/qt-5/qapplication.html#details如何处理没有 GUI 的情况。


This code works perfectly on my Ubnutu with Qt 5.3
#include <QGuiApplication>
#include <QFontMetrics>
#include <QDebug>

int main(int argc, char *argv[])
{
    QGuiApplication a(argc, argv);

    QFont font("Times", 10, QFont::Bold);
    qDebug() << font;
    QFontMetrics metrics(font);

    qDebug() << metrics.boundingRect("test");

    return 0;
}

它也适用于 Qt 4.8QApplication用来。

项目文件非常简单

QT       += core
TARGET = MetricsNoGui
TEMPLATE = app
SOURCES += main.cpp
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无需 GUI 即可获取字体规格(控制台模式) 的相关文章

  • 使 QLabel 的像素图透明

    我有一个带有 QLabel 和像素图的主窗口 我想让它透明 或不那么不透明 我正在使用下面的代码 ui gt label gt setAttribute Qt WA TranslucentBackground ui gt label gt
  • Qt - 如何使用 QNetworkAccessmanager 获取响应文本

    这是我的代码 Widget Widget manager new QNetworkAccessManager this connect manager SIGNAL finished QNetworkReply this SLOT repl
  • QByteArray 到整数

    正如您可能从标题中看出的那样 我在转换QByteArray为一个整数 QByteArray buffer server gt read 8192 QByteArray q size buffer mid 0 2 int size q siz
  • 使用 QWT 构建时出错

    我收到一个错误 undefined reference to QwtPlot QwtPlot QWidget 当我尝试构建我的项目时 即使设置中一切看起来都很好 在我的 CmakeLists txt 中我有 include director
  • QThread - 使用槽 quit() 退出线程

    我想在线程完成运行时通知对象 但是 我无法让线程正确退出 我有以下代码 处理器 cpp thread new QThread tw new ThreadWorker connect tw SIGNAL updateStatus QStrin
  • 使用 qbs 构建 qt 应用程序

    我想知道在 Linux 上使用 qbs 编译 构建和创建 Android Qt 应用程序的步骤 我拥有所有必要的工具 目前我可以使用 qmake 创建 apk Qbs 目前不支持构建 Qt Android 应用程序 Qbs v1 4 中引入
  • QML MouseArea 将事件传播到按钮

    我正在开发一个应用程序 其菜单类似于 Android 版 Gmail 收件箱应用程序菜单 基本上 当您按下按钮打开菜单时 它就会滑入视图 用户可以将其滑开或按菜单上的按钮 对于滑动我使用了代码SwipeArea from kovrov ht
  • Qt 5.3 QPlainTextEdit 更改 QTextCursor 颜色

    我想更改下面的光标颜色QPlainTextEdit小部件 我能够将其宽度设置为6 但我想改变颜色或者它 是否可以 QFontMetrics fm font setCursorWidth fm averageCharWidth setCurs
  • PyQt5 使动态小部件可点击并将参数传递给另一个函数

    我正在尝试制作动态小部件并使它们可点击 通过单击一个小部件 它应该将动态值传递给其他小部件 我尝试过 sender 和其他访问小部件的选项 但没有任何效果 所有小部件都从最后一个小部件发送信息 下面是代码 import sys from P
  • 未提供参数时如何指定 C# System.Commandline 行为?

    在我的控制台应用程序中 当未提供控制台参数时 将执行我指定列表 在本例中为参数 3 的任何处理程序 调用该处理程序时 布尔参数设置为 false 但对我来说 根本不调用它更有意义 如何防止这种情况发生并显示帮助文本 using System
  • 当选项卡到另一个组件位置时,QML 中相应的滚动

    我想做的是 如果我从TextField到另一个组件 aComboBoxwtv 我希望滚动能够适应这一点 当我认为这非常重要时 当我执行连续选项卡时 我会转到滚动视图显示的内容下方的控件 一个例子是 假设我在这里 now i do 2 tab
  • QTextEdit 与 QPlainTextEdit

    有什么区别QTextEdit and QPlainTextEdit 为什么要使用其中一种而不是另一种 我正在编写一个文本编辑器作为学习 Qt5 的练习 现在我想知道是否使用QTextEdit or QPlainTextEdit 到目前为止我
  • 从 QWebEngineView 或 QWebEnginePage 中删除滚动条

    有没有办法删除滚动条QWebEngineView或者我可以以某种方式访问 它的 ScrollArea 吗 使用 webkit 就这么简单 WebView gt page gt setScrollBarPolicy Qt Vertical Q
  • 如何使用 Qt/C++ 创建/读取/写入文件并将设置存储在程序本地

    我是一个不幸的 C 初学者 使用 Qt GUI 设计器程序似乎非常适合我的需求 但我在尝试编写所需的代码时遇到了问题 我可以使用 QSettings 字符串在硬盘驱动器上存储本地设置 但我个人讨厌程序执行某些程序所做的 HOME LOCAL
  • Qt,颜色选择器对话框?

    Qt 是否有如下所示的颜色选择器对话框 它还需要有一个 OnColorChanged 信号 当选定的颜色发生变化时会调用该信号 我想在他们改变颜色时提供实时预览 这就是原因 使用谷歌我只能找到这个 它是一个圆边上的三角形 我个人认为它看起来
  • QImage 转换为 QML

    我的应用程序通过网络接收 JPEG 实时流 每秒 16 帧 直播流应使用 QML 显示 接收部分是用C 编写的 所有UI都是用QML编写的 如何将图像数据输入 QML 窗口 我已经研究过如何显示 QImage 但还没有找到解决方案 实现 Q
  • 从 QTableView 读取和写入文件

    如何读取和写入输入 QTableView 的文本文件日期 这就是我所拥有的 但我想在将数据添加到表中时保存数据 当然能够在重新打开应用程序时读回它 有什么教程可以参考吗 MainWindow MainWindow QWidget paren
  • 无法在 Qt Creator 中检索调试输出

    在 Windows 上的 Qt Creator 中 qDebug 语句不起作用 并且输出窗口中出现以下消息 无法检索调试输出 如何解决 如果多个 Qt Creator 实例处于活动状态 则可能会出现此问题 要解决此问题 只需关闭 Qt Cr
  • 用Qt制作无边框窗口

    我是 Qt C 新手 我下载了最新的 Windows 版本 做了一些教程 非常棒 我看到了 Qt 框架具有的一些样式选项 而且它很棒 但现在我需要构建我的应用程序 其主窗口 形式 是用没有矩形边框 无边框 的图像设计 蒙皮的 我怎样才能用Q
  • 如何使用 C++ 更新 QML 文本

    我有一个小问题 有人可以告诉我如何从 C 更新 qml 文本吗 我有一个使用线程的示例 但我不想应用此方法 因为我不知道如何设置 run 函数中的参数 要完全理解我 这里是我的代码 在启动线程时的主函数中 我想放置自定义文本或具有文本的字符

随机推荐

  • 在c中使用信号量同步两个子进程

    我必须创建一个程序来同步两个进程 每个进程只打印一个字母 这样每当我们观察程序的输出时 A and B 不大于2 所以这会被接受 BAABBAABBABA 这不会是因为它打印 4 个 B 只打印 2 个 A ABBABB 因此 对于初学者来
  • 动态创建CheckBoxPreferences

    我目前正在使用网络服务中的内容动态构建带有复选框的行列表 然而 这ListView将需要做很多事情PreferenceActivity会完成 我不知道行数 因为内容是动态的 所以我无法创建每个行CheckBoxPreference在 XML
  • 如何在 Windows 下强制 Git 使用 LF 而不是 CR+LF?

    我想强制 Git 在 Windows 下签出文件LF not CR LF 我检查了两个配置选项 但无法找到正确的设置组合 我想将所有文件转换为LF换行并保留LF在文件中 备注 我用过autocrlf input但这只是在您提交文件时修复文件
  • WebRTC:确定所选的 ICE 候选者

    我有一个 webrtc 应用程序 假设有两个客户端 client1 and client2 有什么办法可以找出 ICE 候选人给出的内容吗 client1被使用client2反之亦然 因为 每次要找出这个问题 我都必须使用wireshark
  • PSQL 8.3+ 客户端查询结果显示

    这是一个相当愚蠢的问题 但我似乎无法在文档或手册页中找到答案 我认为从 8 3 开始 psql CLI 客户端将不会显示大型内联查询的结果 它通过管道传输到一个 不太像 的结果查看器 当您按 q 时该结果查看器就会消失 这使得在后续查询或更
  • 图像在移动设备上正确旋转,而不是在桌面上正确旋转

    我上传的图片遇到了奇怪的问题 当我在 iPhone 和 iPad 上查看它们时 它们会正确旋转 但每当我尝试在桌面上查看它们时 它们都会以错误的方向显示 我找不到错误 在花了几个小时弄乱 EXIF 数据后 我几乎要放弃了 修复方向后 我还调
  • 如何防止用户导航回上一页?

    我有一个 ASP NET MVC 应用程序 具有三个视图 view1 view2 view3 用户浏览这些内容的逻辑方式是 view1 gt view2 gt view3 当用户到达view3 那么我必须阻止它们加载view2 甚至通过使用
  • Activity 生命周期 - 接收布局完成的通知

    我有一个活动 其中有 3 个按钮并排放置 我使用了 Button 的子类 它将调整按钮文本的大小以防止文本换行 我希望这 3 个按钮共享相同的文本大小 为了做到这一点 我打算检测具有最小文本大小的按钮 并将其他 2 个按钮设置为该文本大小
  • 为什么我可以在 PHP 中的 SQLite 数据库上使用 SELECT 但不能使用 INSERT?

    我能够从 PHP 中的 SQLite 数据库检索信息 但不能写入它 例如 这段代码工作得很好 db new PDO sqlite foo db rowCount db gt query SELECT COUNT FROM tblname g
  • Kubernetes REST API

    是否可以通过 REST API 访问 kubernetes 我正在看库伯内特斯 API http kubernetes io v1 0 docs api html页面 这一切看起来非常神秘 不完整 他们谈论新版本 但没有在任何地方透露 AP
  • 如何从存储过程中进行选择

    我有一个返回行的存储过程 CREATE PROCEDURE MyProc AS BEGIN SELECT FROM MyTable END 我的实际过程有点复杂 这就是为什么需要存储过程 是否可以通过调用此过程来选择输出 就像是 SELEC
  • 部署后出现 ClickOnce 错误 -- 计算出的哈希值与清单中指定的值不同

    使用 ClickOnce 部署 VSTO 外接程序后 尝试启动 setup exe 时收到以下错误消息 文件 Addin resources dll 的计算哈希值与清单中指定的不同 为什么会发生这种情况 我可以做什么来解决这个问题 我只需通
  • 是否可以在没有中间文件的情况下获得 pydot 图的输出?

    我有一个非常简单的图表 我想将其绘制为 svg 例如 graph dot graph a b b c 我目前正在使用 pydot 读取文件 然后生成 svg 文件 如下所示 import pydot graphs pydot graph f
  • 如何在首页而不是“/blog”中显示我的帖子,并维护其他子文件夹,例如“/about”和“/projects”

    我正在尝试使用 Lektor 作为我的博客平台 但遇到了一些问题 继guide https www getlektor com docs guides blog 我能让一切顺利 当我尝试将博客设置为首页而不使用 blog 时 我的问题就开始
  • 在javascript匿名方法中访问复制的整数变量

    我是一名 C 开发人员 习惯了 C 中闭包的工作方式 目前我必须使用匿名 javascript 函数并遇到以下代码片段的问题 function ClosureTest var funcArray new Array var i 0 whil
  • 固定宽度、灵活高度的UILabel

    我在详细视图控制器中有一个 UILabel 因此其内容根据所选的表行而变化 我有一个问题 我会为 UILabel 设置固定宽度 并根据文本设置动态高度 我怎样才能做到这一点 我为我的错误感到抱歉 但我不是英国人 我喜欢子类化UILabel为
  • WCF:单个服务的多个绑定配置

    我正在开发一个必须支持向后兼容性的客户端服务器应用程序 NET 4 WPF WCF 换句话说 就操作合约和数据合约而言 旧客户端应该与新服务器兼容 反之亦然 我们的 WCF 服务托管在 IIS 中 它们were设置为使用 basicHttp
  • beta 二项式和 beta 分布的 alpha 和 beta 估计

    我正在尝试将我的数据拟合到 beta 二项式分布并估计 alpha 和 beta 形状参数 对于此分布 先验取自 beta 分布 Python 没有 beta 二项式的拟合函数 但有 beta python beta 拟合和 R beta
  • iphone-非全局uiimageview检测

    背景 我使用的是 XCode 3 1 4 请记住这一点 但请不要对此发表评论 我必须按下按钮 点火并启动 当按下火时 会使用 IBAction 函数创建一个名为 one 的 UIImageView 当按下开始键时 会创建一个名为 2 的 U
  • 无需 GUI 即可获取字体规格(控制台模式)

    假设一些图像必须由 Qt 控制台程序生成 并且字体规格内部算法需要 它们使用文字宽度 高度作为计算应发生绘图的位置的输入 该程序必须可以在没有任何 GUI 的 Linux 上运行 运行级别 3 基本上是没有任何显示服务器的集群 Proble