这段时间使用QDockWindow一直被一个问题困扰着,就是不能使用resize,要想控制其大小,只能设置嵌入它里面的
widget的固定大小,但设置之后,始终有个大小限制,不方便自由拖动大小。
有说使用重载sizeHint()来解决的,但有些地方好像不行。
问题见
http://www.qtcn.org/bbs/read.php?tid=20032。
今天跟同事讨论,同事说了个非常妙的方法。
在构造某个QWidget的继承类的时候设置一个最大值,
等到
界面都显示了之后,再重新设置一个很大的最大值,
那么相当于大小就
没有限制了。
简单如下:
- //构造某个widget
- AccountWidget::AccountWidget(QWidget *parent)
- : QWidget(parent)
- {
- //......省略......
- setMaximumSize(300, 200);
- }
-
- //等主界面显示之后,在重新设置最大值
- void MainWindow::resetMaximumSize()
- {
- orderInsertWidget->setMaximumSize(16777215, 16777215);
- accountWidget->setMaximumSize(16777215, 16777215);
- }
学习中还是多讨论,人多想法多,别故步自封~