我想禁用调整表单大小 - 这是我所尝试的。 我已经改变了形式的大小调整政策以下 HorizontalPolicy:固定 VerticalPloicy:固定禁用表单调整大小
我也曾尝试以下
Form *w = new Form();
w->setFixedSize(w->size());
w->show();
但形式仍然得到通过拖动边角调整大小。有什么建议么 ?
我想禁用调整表单大小 - 这是我所尝试的。 我已经改变了形式的大小调整政策以下 HorizontalPolicy:固定 VerticalPloicy:固定禁用表单调整大小
我也曾尝试以下
Form *w = new Form();
w->setFixedSize(w->size());
w->show();
但形式仍然得到通过拖动边角调整大小。有什么建议么 ?
它必须是可能的。
首先,您应该知道,在窗口实际显示之前,它没有任何尺寸的信息 - 因此尺寸可能会返回0(或无效;或任何;)) - 这可能会弄乱整个尺寸,因此被默默拒绝。我会尝试
Form *w = new Form();
//w->ensurePolished();
w->setFixedSize(w->sizeHint());
w->show();
大小提示应该有正确的价值,不管是什么。 QWidget::ensurePolished()可能在这里是必要的,但我建议先尝试没有它 - 如果它的工作,为什么复杂的东西?
如果还是不行,那么你可以简单地尝试重写resizeEvent()
,如果用户它会调整到什么都为你的小部件设置唯一正确的尺寸。这仍然会给用户一个调整大小的能力(边缘上的光标变化等),所以它才是最后的选择。
编辑:
#include <QtGui/QApplication>
#include <QWidget>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w;
w.setFixedSize(500,500);
w.show();
return a.exec();
}
结果:控件不能调整大小。所以这不会改变QMainWindow的帮助 - 在我的系统上最少使用一个简单的小部件也可以;)
这仍然无法工作 – Rajeshwar 2013-05-03 01:49:10
只是为了确保我刚刚创建了一个新的项目,新的默认QMainWindow,删除状态栏(具有单独的调整大小手柄),和在**'setupUi()'之后** **我添加了'setFixedSize(sizeHint());' - 并且我的窗口没有大小 - 当悬停边框时甚至没有显示大小光标。我的系统WIndows 7,Qt 4.7.4(32位)。 – 2013-05-03 01:58:52
那么我使用的是VS2010的QT插件。创建了从QWidget Base Class派生的新UI类。将其从“QMainWindow”派生出来的主窗口。我的UI类继承自'QWidget' – Rajeshwar 2013-05-03 04:39:42
这真的很奇怪,你试过的东西应该可以工作。如果你正在Windows上开发,试试'w-> setWindowFlags(Qt :: MSWindowsFixedSizeDialogHint)' – 2013-05-02 22:45:19
@NemanjaBoric不幸的是,这也不工作。也许是因为我在这里使用表单。相反,我应该使用dialog.I不认为窗体可以禁用调整大小 – Rajeshwar 2013-05-02 22:51:51