一杯清酒邀明月
天下本无事,庸人扰之而烦耳。

一,问题:

QDockWidget不能使用resize方法来确定初始大小,如果用setMaximumSize和setFixedSize,的确可以设置初始大小,但也限制了QDockWidget的最大尺寸,不能用鼠标拖动来改变QDockWidget的大小。

二, 目的:

如何不通过setMaximumSize和setFixedSize 设置QDockWidget的初始大小

三, 解决方案:

派生一个QWidget的新类,设置其sizeHint的返回值

 1 #include <QtGui>  
 2   
 3 class MyWidget : public QWidget  
 4 {  
 5 public:  
 6     QSize sizeHint() const  
 7     {  
 8         return QSize(270, 900); /* 在这里定义dock的初始大小 */  
 9     }  
10 };  
11   
12 int main(int argc, char **argv)  
13 {  
14     QApplication app(argc, argv);  
15     QMainWindow box;  
16     QDockWidget *dock = new QDockWidget(&box);  
17     MyWidget *wi = new MyWidget;  
18     dock->setWidget(wi);  
19     box.addDockWidget(Qt::TopDockWidgetArea, dock );  
20     box.show();  
21     return app.exec();      
22 }

 

posted on 2020-08-14 15:54  一杯清酒邀明月  阅读(1853)  评论(0编辑  收藏  举报