您的位置:首页 > 其它

QDockWidget上自定义 Widget 随其自动缩放

2011-08-17 16:19 821 查看
场景编辑器需要将场景中的物体作为列表显示。QT中使用QDockWidget做是很漂亮的。

我一开始的做法是,写个类继承QWidget,将QTreeWidget作为成员。然后添加QDockWidget

m_dockwidget = new QDockWidget(tr(" List"), m_main_window);

m_dockwidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);

m_dockwidget->setObjectName(QString::fromAscii("dockwidget"));

m_objectlist_tree = new ObjectTreeWidget(m_dockwidget);

m_dockwidget->setWidget(m_objectlist_tree);

m_main_window->addDockWidget(Qt::LeftDockWidgetArea, m_dockwidget);

m_dockwidget->raise();

但是运行结果却是,QTreeWidget是固定大小,不能随QDockWidget缩放。网上搜索发现有很多人遇到和我一样的情况。

最后的解决办法是使用layout。

在自定义的ObjectTreeWidget里使用:

m_objectlist_tree = new QTreeWidget(this);

m_layout = new QVBoxLayout(this);

m_layout->addWidget(m_objectlist_tree);

问题就解决了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: