【发布时间】:2020-01-26 15:41:09
【问题描述】:
我的对话窗口的一个标题被缩短(如“我的对话...”)。如果对话框稍微宽一点,整个标题会完全显示出来,看起来会更好。
似乎 Qt 中没有设置可以做到这一点。我在这里找到了QMessageBox 的破解方法:Can QMessageBox::about adjust size to title length?,但它并不通用。例如,它还必须考虑窗口标题左侧和右侧的图标大小,以计算一个非常好的最小尺寸,其中标题仍然完全显示。
有没有一种通用的方法可以做到这一点?是否还有一种简单的方法可以做到这一点?或者这是过度工程?
【问题讨论】:
-
@rafaelgonzalez 是的,这是我引用的不普遍的问题。
-
IMO,根据标题字符串的长度调整对话框大小是不良 GUI 设计的一个例子,除非有特定原因。
-
@vahancho 为什么? (我不想说你错了,我只是想知道你的理由。)
-
@BenjaminBihler,因为我设想了以下场景:假设您有一个窗口,在其标题栏上显示您加载的文件的完整路径。现在您打开一个包含相当长的完整路径的文件 - 您的窗口会自发扩展,可能会扩展至屏幕外。下次您打开另一个文件时,您的窗口会缩小等等。你喜欢吗?我没有,因为我想自己控制窗口大小。这就是 Qt 自动剪切标题字符串而不提供扩展窗口的 API 的原因。