我需要一个QLabel,其宽度不应根据包含的文本自适应,但用户(或准确地说是布局)可以调整其大小。如果文本过长而超出QLabel的宽度,则应将其裁剪。
这个问题有点相反于如何使QLabel扩展宽度以适应文本。然而,那个问题的内容对我没有帮助。在布局中设置QLabel上的文本不会调整大小也没有帮助。
背景:
QLabel将显示来自另一个系统的标识符(单词)。有时这些标识符每秒钟变化很多次,这使整个布局闪烁。QLabel是垂直停靠窗口的一部分,因此停靠窗口的宽度会闪烁。
另一方面,用户应该决定能看到多少标识符。所以我想允许用户更改停靠栏的宽度,使
解决尝试
为了实现这一点,我将水平大小策略设置为
我知道可以应用
版本
Qt 5.5.1 GCC 5.4.0 所有来自当前 Ubuntu 16.04 存储库。
这个问题有点相反于如何使QLabel扩展宽度以适应文本。然而,那个问题的内容对我没有帮助。在布局中设置QLabel上的文本不会调整大小也没有帮助。
背景:
QLabel将显示来自另一个系统的标识符(单词)。有时这些标识符每秒钟变化很多次,这使整个布局闪烁。QLabel是垂直停靠窗口的一部分,因此停靠窗口的宽度会闪烁。
另一方面,用户应该决定能看到多少标识符。所以我想允许用户更改停靠栏的宽度,使
QLabel
的宽度适应此宽度。解决尝试
为了实现这一点,我将水平大小策略设置为
QSizePolicy::Preferred
并从 QLabel
派生出自己的标签类,在其中覆盖了 sizeHint()
以返回固定大小。但是,这并没有改变行为。我知道可以应用
QFontMetrics
来计算文本的宽度,然后将其截断以适应 QLabel
的宽度。但是这似乎不是正确的解决方案,特别是当最后一个字母本身无法完全适合时,我希望将其剪切以向用户提供指示,即标识符过长无法显示。版本
Qt 5.5.1 GCC 5.4.0 所有来自当前 Ubuntu 16.04 存储库。
QLabel::setScaledContents(true)
吗?它对标签中的文本有影响吗? - vahancho