2

我正在使用在 Windows 8 上使用 GCC 4.8 静态构建的 Qt 5 的最新稳定版本。

我用一个按钮创建了一个简单的基于 QMainWindow 的应用程序。当我这样做时setFixedSize(minimumSizeHint()),窗口会根据需要调整大小并且最大化按钮被禁用,但是当我将指针悬停在边缘上时,我仍然可以看到双面箭头,并且可以将窗口垂直调整 14 个像素。如果添加另一个按钮或状态栏 - 没有任何变化。如果我将 14 像素(或更多)添加到最小高度 - 它变得真正固定,但我仍然可以看到箭头,这是不正常的。

这很奇怪,因为完全相同的代码(及其变体)在 PyQt4 中运行良好(请注意,我现在使用 C++)。我试过了:

  • layout()->setSizeConstraint(QLayout::SetFixedSize)- 相同的行为
  • setWindowFlags(Qt::MSWindowsFixedSizeDialogHint)- 窗口就消失了

有任何解决这个问题的方法吗?

UPD:添加另一个按钮我错了(显然,它与添加状态栏不同) - 无法再调整窗口大小(不过,为什么 Qt 让我设置窗口的高度更少比它喜欢的...),但箭头仍然存在。

UPD 2:找到了一个非常相似的问题,但答案没有帮助(原因在对问题本身的评论中描述)。

4

2 回答 2

1

sizegrip 的东西在 Qt 5 中的工作方式似乎有所不同。不知道这是否是一个错误。我尝试Qt::MSWindowsFixedSizeDialogHint为我的主窗口设置标志,它似乎对我来说工作正常。虽然我在 Windows 7 上。

正如它在有关setWindowFlags函数的文档中所说: Note: This function calls setParent() when changing the flags for a window, causing the widget to be hidden. You must call show() to make the widget visible again..

于 2013-06-03T08:02:25.653 回答
0

如果您希望它的行为与您在 PyQt4 中的行为相同,您可以使用 PyQt 项目使用的相同版本的 Qt 在 C++ 中编程:Qt 4.8.4

http://qt-project.org/doc/qt-4.8/qwidget.html#setFixedSize

希望有帮助。

于 2013-06-02T19:30:51.893 回答