首页 > 解决方案 > Motif 如何计算或检索字体像素大小?

问题描述

我正在尝试在 Motif 中编写代码来更改对话框警告框以调整其大小,如果框不够宽。宽度和高度始终由调用类设置,并且它并不总是足够宽以显示消息并且行尾被截断。他们不想到处固定以使用自动调整大小(即宽度为 0 或根本不设置),而是想弄清楚对话框中字符的像素宽度大小是多少。然后,他们可以乘以最长的线 X 像素宽度来获得以像素为单位的线长度。然后我们将查看是否需要重置对话框声明的宽度以停止截断。只有太短的对话框才会被更改(太宽的对话框不会被更改)。

然而; 我找不到任何关于如何在任何地方获取以像素为单位的字符宽度的示例。我记得几年前我在一个项目中,他们创建了某种类型的小部件,将一个字符插入其中,然后执行 XtGetValues 来获取宽度和高度,所以我认为可以完成。那么有人知道该怎么做吗?

标签: c++motifxt

解决方案


那是很久以前的事了,但如果没有记错的话,Xt 对字体没有任何特定的支持,它依赖于普通的 libx11。您将需要调用XQueryFontXLoadQueryFont获取XFontStruct描述您的字体的信息,然后通过per_char数组查找单个字形的范围。


推荐阅读