【问题标题】:QWidget when setMaximumSize Maximize button doesn't work当setMaximumSize最大化按钮不起作用时的QWidget
【发布时间】:2013-04-16 08:13:57
【问题描述】:

我有一个 QWidget,它有一个包含 QScrollArea 的水平布局。 当我向 QScrollArea 添加一个小部件时,我更改了容器 QWidget 的最大大小:

this->setMaximumSize(newWidget->maximumWidth(), newWidget->maximumHeight());

最大尺寸已更改,但最大化按钮不再起作用。我可以用鼠标改变小部件的大小,但不能用最大化按钮。

如果我将最大尺寸设置为更高的值,例如:

this->setMaximumSize(newWidget->maximumWidth() * 2, newWidget->maximumHeight() * 2);

最大化按钮效果很好。

提前致谢。

【问题讨论】:

  • QWidget 是顶级的吗?你可以调整它的大小以填满屏幕,还是停止在你设置的最大尺寸?
  • 是的,它是顶级的。它会在设置的最大尺寸处停止,但仅在使用鼠标时才会停止。

标签: qt qwidget qscrollarea


【解决方案1】:

您已将最大尺寸设置为小于您的桌面尺寸。因此,当您尝试最大化小部件时,您是在要求小部件超出您设置的最大尺寸 - 所以它会忽略您。

大概newWidget->maximumWidth() * 2 有效,因为该数字大于您的桌面大小。

【讨论】:

  • 是的,你是对的。但是桌面宽度是 1280,我希望我的窗口的最大宽度是 889。所以,如果我的窗口的当前大小是 300,我不能使用最大化按钮将宽度设置为 889 吗?
  • 不,窗口的最大化不是“将其设置为最大尺寸”,它是一种桌面环境状态,您可以通过停止窗口变得足够大以与屏幕对接来有效地禁用它边缘。
  • 非常感谢。还有一件事,你有什么想法可以解决我的问题吗?
  • 为什么要限制窗口大小?滚动区域的重点是让任何大小的对象都适合窗口。另一种选择是使用QDialog 中的滚动区域,这样您就可以隐藏最大化按钮。
  • 我限制了窗口大小,因为我不希望窗口大于它的大小。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-06
  • 1970-01-01
  • 2011-12-26
  • 1970-01-01
相关资源
最近更新 更多