如何改变QDockWidget的放置方式

Jacky_ling 2012-02-29 09:58:04
建了好几个Dock Widget,然后把它们停放在左边,初始显示的样子是:


但我想要样子是:


请问应该如何设置呢?我用了tabifiedDockWidgets(),但好像不起作用。
...全文
1186 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jacky_ling 2012-03-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 supermanyuan 的回复:]

这里里面只能是两个的 那三个或四个 我想做成这样的效果怎么弄?
[/Quote]

我的做法是:
for (int i = 0; i < 6; ++i)
{
m_Widget[i] = new QDockWidget(...);
addDockWidget(..., m_Widget[i],Qt::Vertical);
}
for (int i = 1; i < 6; ++i)
{
this->tabifyDockWidget(m_Widget[0],m_Widget[i]);
}

m_Widget[0]->raise();
supermanyuan 2012-03-05
  • 打赏
  • 举报
回复
这里里面只能是两个的 那三个或四个 我想做成这样的效果怎么弄?
supermanyuan 2012-03-05
  • 打赏
  • 举报
回复
多个界面是怎么解决的?
gauldoth 2012-02-29
  • 打赏
  • 举报
回复
恩,注意看下下面的函数说明吧。
tabifiedDockWidgets和tabifyDockWidget表达的是不一样的意思。
前者是“堆叠着的DockWidget们”,后者是“堆叠DockWidget”。
你这里用tabifyDockWidget就好了。
Jacky_ling 2012-02-29
  • 打赏
  • 举报
回复
谢楼上关注~ 是有tabifiedDockWidgets()这个函数的:
QList<QDockWidget *> QMainWindow::tabifiedDockWidgets ( QDockWidget * dockwidget ) const
Returns the dock widgets that are tabified together with dockwidget.
This function was introduced in Qt 4.5.
gauldoth 2012-02-29
  • 打赏
  • 举报
回复
void QMainWindow::tabifyDockWidget ( QDockWidget * first, QDockWidget * second )
Moves second dock widget on top of first dock widget, creating a tabbed docked area in the main window.

注意单词的意思哦。
tabified是什么词呢?
Jacky_ling 2012-02-29
  • 打赏
  • 举报
回复
搞定了:
QMainWindow w;
QDockWidget *dw1 = new QDockWidget("1", &w);
QDockWidget *dw2 = new QDockWidget("2", &w);
w.addDockWidget(Qt::LeftDockWidgetArea, dw1);
w.addDockWidget(Qt::LeftDockWidgetArea, dw2);
w.tabifyDockWidget(dw1, dw2);
谢楼上~

16,215

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧