3

我有以下课程:

class SelectDateDialog(QDialog):
    startDate = date.today()
    endDate = date.today()

    def __init__(self, text, isInterval = False):
        QDialog.__init__(self)
        uic.loadUi("resources/SelectDate.ui", self)

现在,该对话框在 Mac OS X 10.5 上可以调整大小,但不应该如此。它在右下角有调整大小的句柄。

我已经尝试过这个setSizeGripEnabled功能,它没有改变任何东西。

我怎样才能使它不可调整大小?

4

4 回答 4

8

如果你想要一个不可调整大小的 QDialog dlg,那么设置

dlg.setWindowFlags(Qt::MSWindowsFixedSizeDialogHint);
于 2010-04-06T07:06:48.460 回答
5

我使用以下代码来修复 a 的大小QDialog

layout()->setSizeConstraint( QLayout::SetFixedSize ) ;
setSizeGripEnabled( false ) ;

第一行根据布局中包含的小部件的首选大小强制布局大小。第二行删除了实际的抓地力。

要扭转这种情况,您可以在布局上设置默认约束并重新启用尺寸夹点。

于 2009-04-15T18:25:21.727 回答
4

使窗口或对话框不可调整大小的最简单方法是将其布局的大小约束设置为 QLayout.SetFixedSize(或 C++ 中的 QLayout::SetFixedSize)。您只需对窗口中的主布局执行此操作 - 包含所有其他小部件和布局的布局。

我看到您正在使用 Qt Designer 为您的对话框创建用户界面。打开 .ui 文件并选择窗口,然后在属性编辑器中向下滚动,直到看到 Layout 部分。将 layoutSizeConstraint 属性设置为 SetFixedSize。

预览表单时,对话框内的小部件应正确排列,但您将无法调整对话框的大小。

于 2009-02-23T00:53:34.100 回答
1

无论出于何种原因,我总是必须执行以下操作(在 Qt Designer 中)以绝对确保无法调整窗口大小:

sizePolicy -> Horizontal Policy = Fixed
sizePolicy -> Vertical Policy = Fixed

minimumSize -> Width = X
minimumSize -> Height = Y

maximumSize -> Width = X
maximumSize -> Height = Y

请注意,我选择 X 和 Y 来说明minimumSize == maximumSize。当你这样做时,调整大小的句柄应该会自行消失,尽管我已经看到至少一个 Linux 发行版保留了句柄。在那种特殊情况下,我们只是隐藏了句柄,因为它无论如何都无法调整窗口大小。

于 2009-04-15T11:39:52.903 回答