天天看点

设置QDockWidget的初始大小

一,问题:

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

二, 目的:

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

三, 解决方案:

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

Cpp代码  

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

FROM:  http://kenby.iteye.com/blog/423684