• 9828阅读
  • 3回复

如何调整QDockWidget的大小 [复制链接]

上一主题 下一主题
离线kenby
 
只看楼主 倒序阅读 楼主  发表于: 2009-07-11
新建一个QDockWidget, 然后添加到主窗口,用resize方法确定它在主窗口中显示的大小,但不管用啊,代码如下:
QDockWidget *dw = new QDockWidget;
dw->setVisible( true );
dw->resize(100, 300);
addDockWidget(Qt::RightDockWidgetArea, dw);
离线kenby
只看该作者 1楼 发表于: 2009-07-11
问题解决了,总结一下
QDockWidget不能使用resize方法来确定初始大小,如果用setMaximumSize和setFixedSize,的确可以设置初始大小,但也限制了QDockWidget的最大尺寸,不能用鼠标拖动来改变QDockWidget的大小。如何不通过setMaximumSize和setFixedSize 设置QDockWidget的初始大小呢?解决办法如下:
派生一个QWidget的新类,设置其sizeHint的返回值,相关代码为:
  1. #include <QtGui>
  2. class MyWidget : public QWidget
  3. {
  4. public:
  5.     QSize sizeHint() const
  6.     {
  7.         return QSize(270, 900);    /* 在这里定义dock的初始大小 */
  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. }
离线robertkun

只看该作者 2楼 发表于: 2009-07-31
,但也限制了QDockWidget的最大尺寸,不能用鼠标拖动来改变QDockWidget的大小

为什么我这里可以呢,resize()后然可以,用鼠标拖动改变大小,只是设置了setTitleBarWidget(headwidget); 后,大小就不可以改变了,
不知道错在哪里?
                                              简单的生活使人快乐!
离线jiapper

只看该作者 3楼 发表于: 2011-02-15
qt版本不同,可能效果也不一样。不知道大家都用的什么版本,我这是4.5.3上面 的方面 不起作用。
快速回复
限100 字节
 
上一个 下一个