我正在使用在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 :找到very similar question,但答案没有帮助(出于对问题本身的评论中所述的原因)。
答案 0 :(得分:1)
在Qt 5中,sizegrip似乎有所不同。不知道它是否是一个bug。我尝试为我的主窗口设置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..
答案 1 :(得分:0)
如果你希望它的行为与PyQt4中的相同,你可以使用PyQt项目使用的相同版本的Qt在C ++中编程:Qt 4.8.4
http://qt-project.org/doc/qt-4.8/qwidget.html#setFixedSize
希望有所帮助。