获取QLineEdit文本的边距

6
如何获取QLineEdit的文本边距?
请注意屏幕截图中的红线,这是我感兴趣的边距:
我尝试从截图中的编辑框中使用qDebug() << ui->lineEdit->textMargins();,但它打印出 QMargins(0, 0, 0, 0),即使编辑框确实具有边距。

最终这是字体大小和小部件大小之间的空间吗?您可能可以通过字体大小(QFontMetrics)和可用高度来计算此值。textMargins()方法返回保留的边距自由空间,边距为0并不意味着您的字体将始终触及边框。 - Sebastian Lange
1
这可能解释垂直边距,但不能解释水平边距。此外,水平边距可以消失,请参见http://i.stack.imgur.com/9mD13.png。 - sashoalm
你为什么需要这些信息?也许有其他的方法可以解决你的问题,而不必获取这些值。 - Marek R
@MarekR 我需要计算给定字符的绝对边界框。为什么我需要这个?长话短说。 - sashoalm
1个回答

3
请查看QLineEdit的paint事件。可以看到有很多因素会影响它。
除了textMargins之外,还有其他因素可能会对您正在寻找的值产生影响。
  1. 使用的样式(请参见第1942行)
  2. 和字体属性-请参见QFontMetrics :: ascentQFontMetrics :: descent
样式值最重要,您必须找到方法来获取此值(可能需要子类化)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接