作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 QLabel 上按如下方式对齐文本:
name : value
more : other value
longer name : value
下面的操作很简单
QString str;
str += "name\t\t: value\n";
str += "more\t\t: other value\n"
str += "longer name\t: value"
问题是,如果我事先不知道字符串对,Qt 中有没有办法确定每个字符串必须有多少个 \t
-chars它们在 :
上对齐(如果制表符是唯一的选项)?
我不能使用 QString::arg(),因为文本是使用非恒定宽度文本显示在 GUI 上的。这里的问题是,如果我计算字符数并设置 fieldWidth :
不会对齐,因为每个字符的宽度不相同(更改字体是不是一个选项)
我尝试了一些逻辑来计算然后“猜测”要插入的制表符的数量,这在一般情况下是有效的,但在某些极端情况下它可能不起作用。
我也不能使用任何其他小部件,因为代码只能访问它必须更新的一个 QLabel*
。
最佳答案
我认为如果使用的字体不是等宽字体,则使用“空白”字符的对齐可能会失败。
你应该使用 QGridLayout或者,如果您真的只需要使用一个 QLable
来存档它,您可以使用 html 标签(table
、tr
、)对齐文本td
).
关于c++ - 用于在 QLabel 上对齐非恒定宽度文本的通用代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52112857/
我是一名优秀的程序员,十分优秀!