题
我有一夸脱对话的应用程序。现在我不想该对话将调整大小.我不知道该如何来实现这一点。我尝试了一堆的东西,但仍然时的对话会启动此对话的大小可进行调整。
什么是酒店,我应该集到禁止的对话/部件调整。
我也试过
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::Policy
到setSizePolicy(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属性。
设置layoutSizeConstraint
到SetFixedSize
。
在代码你可以做这样的事情,
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做如下,
- 选择对话框件
- 定位对话框部件在窗口的对象
- 在目窗口,右击的对话框物体弹出一个菜单
- 选择"大小的限制"->"设定的最大尺寸"从菜单
- 右击再次上的对话对象的弹出一个菜单
- 选择"大小的限制"->"设置的最小尺寸"
- 在酒店的窗口,
- 确保"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的。