宁可枝头抱香死,何曾吹落北风中。这篇文章主要讲述QGuiApplication没有显示使用QPainter和QPdfWriter相关的知识,希望能为你提供帮助。
我正在编写一个Qt程序,打算在没有显示器的情况下运行,并生成PDF文件。对于PDF编写,我正在使用带有QPainter对象的QPdfWriter类。我已经开发了我的程序的PDF写作部分,并且一切都很好(我能够绘制线条/文本/图像没问题)。我的问题是让程序在没有显示的情况下运行并让QPainter绘制文本。
最初我使用的是QApplication
对象,但是当没有显示器运行时,我会得到以下输出:
QXcbConnection: Could not connect to display
我了解到我必须使用
QGuiApplication
对象,并传入参数-platform offscreen
来修复显示问题。但是当我传递-platform offscreen
的参数时,我会松开QPainter
使用的字体并得到以下输出:QFontDatabase: Cannot find font directory C:/Qt/5.9.2/msvc2013_64/lib/fonts.
Note that Qt no longer ships fonts. Deploy some (from http://dejavu-fonts.org for example) or switch to fontconfig.
【QGuiApplication没有显示使用QPainter和QPdfWriter】我去了
dejavu
网站并下载了可用的字体,我现在正在使用以下字体加载字体:QFontDatabase::addApplicationFont("C:/Users/username/Downloads/dejavu-fonts-ttf-2.37/ttf/DejaVuSans.ttf");
现在我的PDF生成工作,并能够使用手动加载的字体。我的问题是我仍然得到错误打印输出“QFontDatabase:找不到字体......”。这很烦人,好像我已经加载了一些字体,一切正常。所以我的问题是:有没有办法关闭此警告?
答案把这一行放到你的
main()
的开头,以摆脱警告:qputenv("QT_QPA_FONTDIR", "C:/Users/username/Downloads/dejavu-fonts-ttf-2.37/ttf");
推荐阅读
- 如何在Android中使用FFMPEG库将Youtube视频与MP4合并()
- Android应用自定义字体在手机上完全被忽略
- 如何在Android Studio上添加字体文件夹()
- Android支持哪些字体文件类型()
- 如何在WinForms中使用C#在Windows的任务栏中检索(列出)所有打开的应用程序的标题和进程ID
- 如何使用AWS Lambda创建快照
- 如何使用插件有效地工作
- 使用React Native进行混合应用程序开发的关键原因
- MVP(任何移动应用程序成功的关键)