Qt关于QWidget重用

fkeujjpdc 2013-09-28 10:17:10
我现在有个项目,需要显示一个QWidget以不同布局显示,如果new几个QWidget感觉比较浪费资源。我想想能不能重用一个QWidget在不同布局中显示,要如何做,感觉new一个QWidget 然后保存指针用几个LayBox对这个widget添加。不知道会不会造成资源释放问题,因为Qt是基于parent链表释放资源的。大家有没有什么好的办法,如果没办法也可以讨论一下
...全文
310 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fkeujjpdc 2013-10-09
  • 打赏
  • 举报
回复
有没有人啊,能不能帮我解答一下,我再把问题描述一遍吧 我现在有三个窗口
QWidget* pW1 = new QWidget;
QWidget* pW2 = new QWidget;
QWidget* pW3 = new QWidget;
我要这三个窗口在不同的stacklayout中以不同的layout显示。比如第一个stacklayout页中我用水平布局显示这三个页面。第二个stacklayout页中我用垂直布局显示。我不想为每个stacklayout页都new这三个窗口,感觉很浪费内存。有没有什么好的方法在两个共用stacklayout页这三个窗口。
fairyprince 2013-10-06
  • 打赏
  • 举报
回复
QT 对像可自动释放,可手动释放, 你可以动态创建布局对像,在不用时手动删,然后在创建另一种布局对像
fkeujjpdc 2013-10-06
  • 打赏
  • 举报
回复
我可能没表达清楚
QWidget* pW1 = new QWidget;
QWidget* pW2 = new QWidget
我现在有这两个widget我需要能有时候是水平布局,有时候是垂直布局,有时候是GRID布局。如果我现在已经加载到水平布局里面,我要如何切换到垂直布局,我如果直接加载到垂直布局会不会造成资源泄露的问题
fkeujjpdc 2013-10-06
  • 打赏
  • 举报
回复
我想要的就是不同布局共用相同的窗口,因为在不同的状态下我需要窗口的布局不同(不需要同时显示几种布局),我感觉上面的代码这么做会有资源释放的问题,因为加载到了两个layout中资源可能会释放两次。
fkeujjpdc 2013-10-06
  • 打赏
  • 举报
回复
引用 4 楼 fairyprince 的回复:
QT 对像可自动释放,可手动释放, 你可以动态创建布局对像,在不用时手动删,然后在创建另一种布局对像
我还是写个代码,文字描述可能不太清楚。
QWidget* pW1 = new QWidget;
QWidget* pW2 = new QWidget;
QHBoxLayout* pLayH= new QHBoxLayout;
pLayH->addWidget(pW1);
pLayH->addWidget(pW2);

QVBoxLayout* pLayV= new QVBoxLayout;
pLayV->addWidget(pW1);
pLayV->addWidget(pW2);
  • 打赏
  • 举报
回复
可以通过qgridlayout来控制
彩阳 2013-09-29
  • 打赏
  • 举报
回复
看看Qt动画框架的例子:states

16,215

社区成员

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

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