我有一夸脱对话的应用程序。现在我不想该对话将调整大小.我不知道该如何来实现这一点。我尝试了一堆的东西,但仍然时的对话会启动此对话的大小可进行调整。

什么是酒店,我应该集到禁止的对话/部件调整。

我也试过

setSizePolicy(QSizePolicy::Fixed);

但我得到一个错误说法..

source\nimcac_settingsMain.cpp(36) : error C2248:
**'QSizePolicy::QSizePolicy' : cannot access private member declared in class 'QSizePolicy'**
        p:\ThirdPartyExports\Qt\export\4.3\4.3.1f14\include\QtGui\../../src\gui\
kernel\qsizepolicy.h(177) : see declaration of 'QSizePolicy::QSizePolicy'
        p:\ThirdPartyExports\Qt\export\4.3\4.3.1f14\include\QtGui\../../src\gui\
kernel\qsizepolicy.h(34) : see declaration of 'QSizePolicy'

请帮助我这个。

有帮助吗?

解决方案

我不知道,如果你已经尝试过,但QWidget::setFixedSize应该做你想要什么

其他提示

你得到的编译错误是因为你试图传递一个QSizePolicy::PolicysetSizePolicy(QSizePolicy),但有从QSizePolicy::Policy的隐式转换(这是一维的政策),以QSizePolicy(这是一类含有,除其他事项外,一个Policy每个维度(高度,宽度))。 QSizePolicy不会对顶层窗口小部件的工作(视窗)无论如何,虽然。

如果您知道的对话框提前大小setFixedSize()只能(而且通常你不这样做,有什么改变字体大小和语言)。你可以做

window()->setFixedSize( window()->sizeHint() );

但它是更好的使用

window->layout()->setSizeConstraint( QLayout::SetFixedSize );

这让布局确定对话框的大小,但不允许调整大小,我以为是你问什么。

this->setFixedSize(this->width(),this->height());

你需要改变windowFlags的对话,并将其设置到建::MSWindowsFixedSizeDialogHint.

这个只能在窗户.

欲了解更多信息,请看看这个例子:http://doc.qt.digia.com/4.5/widgets-windowflags.html

如果你使用QtCreator(当然你是)可设置的财产HorizontalsizePolicy固定和纵向政策还可以固定。然后你可以设定maximumSize的尺寸你想要的。窗口将不会最大化。

在QT的创造者,在用户界面中编辑,单击在属性窗口顶部对象上,然后滚动在布局部分的底部。您应该看到layoutSizeConstraint属性。

设置layoutSizeConstraintSetFixedSize

在代码你可以做这样的事情,

Dialog->resize(581, 292);
QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(WaterLevelEditorDialog->sizePolicy().hasHeightForWidth());
Dialog->setSizePolicy(sizePolicy);
Dialog->setMinimumSize(QSize(581, 292));
Dialog->setMaximumSize(QSize(581, 292));
Dialog->setSizeGripEnabled(false);

在QtCreator做如下,

  1. 选择对话框件
  2. 定位对话框部件在窗口的对象
  3. 在目窗口,右击的对话框物体弹出一个菜单
  4. 选择"大小的限制"->"设定的最大尺寸"从菜单
  5. 右击再次上的对话对象的弹出一个菜单
  6. 选择"大小的限制"->"设置的最小尺寸"
  7. 在酒店的窗口,
    • 确保"sizePolicy"->的"水平"政策具有价值"固定的"
    • 确保"sizePolicy"->的"纵向"政策具有价值"固定的"
    • 确保"sizeGripEnabled"不检查

从Qt文档,setSizePolicy()方法要么取零参数或两个参数,但不能是一个参数。这就是为什么你得到这个编译错误。从我的实验,如果不设置固定的大小。这个方法有没有用。窗口仍然可以改变大小。

在的情况下你正在设计中QML UI,并使用发射QDeclarativeView,尝试下面的代码。

QScopedPointer<QmlApplicationViewer> viewer(QmlApplicationViewer::create());
.
.
.
//To make the window non-resizable
viewer->setFixedSize(viewer->width(),viewer->height());

下面QmlApplicationViewer从QDeclarativeView的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top