启用 QLabel 即使截断文本也能收缩
如何调整 QLabel 的大小,即使这意味着截断其包含的文本?我有一个 QLabel 拉伸小部件的整个水平空间。设置其文本时,我确保它被正确截断,即获取其 FontMetrics 和宽度并使用metrics.elidedText()。
但是,当用户调整小部件的大小时,标签不允许它进一步缩小,因为它会截断其文本。
有什么想法如何解决这个问题吗?我认为最简单的解决方案是以某种方式告诉 QLabel 始终缩小,然后捕获调整大小事件并正确格式化文本 - 我只是不知道如何执行第一部分(不同的大小策略没有帮助)
How can I get a QLabel to be resized even if it means truncating its containing text? I have a QLabel stretching the whole horizontal space of a Widget. When setting its text I make sure it is correctly truncated, ie getting its FontMetrics and Width and using metrics.elidedText().
But when the user resizes the widget the Label doesn't allow it to shrink any further since it would truncate its text.
Any ideas how to solve this? The simplest solution I think would be to somehow tell the QLabel to always shrink and then catch the resize event and correctly format the text - I just have no idea how to do the first part (different size policies don't help)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尽管您提到设置大小策略没有帮助,但将 QLabel 的水平大小策略设置为 QSizePolicy::Ignored 应该告诉包含的布局管理器忽略任何最小大小标签上的提示。另一种方法是将 QLabel 的最小水平尺寸设置为非零值,例如 1。如果这些都不起作用,则说明存在其他干扰。
Although you mention that setting size policies didn't help, setting the
QLabel
's horizontal size policy toQSizePolicy::Ignored
should tell the containing layout manager to ignore any minimum size hint from the label. An alternative would be to set theQLabel
's minimum horizontal size to a non-zero value, like 1. If neither of these work then there is something else interfering.