回答
Qt中的许多事情不能被“传统”去除。而是调用hide()并将其破坏。从QSplitter文档:
当您隐藏()一个孩子的空间将 其他 孩子之间进行分配。当你再次显示()时,它将被恢复。
我喜欢Tuminoid的答案。但是,如果您绝对需要删除它,请尝试获取要删除的小部件,然后在该小部件上调用setParent(NULL)
。这是我最好的猜测。
,如果你想保留的小部件,并把它在其他地方目前还不清楚我的,或者如果你想摧毁该Widget。
销毁小部件:如果你能 获得一个指向小部件,你可以简单地 删除它。拆分器将 安全地通知其子 被删除,并将从其自身删除 。
保留部件:如果你抢 指针到小部件,您可以 简单地设置其母公司其他一些 部件并将其添加到另一个 小部件的布局,它会显示 那里。这是安全的,因为QSplitter将被通知一个 其子女正在重新设置。
如果要设置父为NULL(cjhuitt的答案),要知道,你现在负责清理内存,因为小部件不再有父。
如果你持有一个指针部件,那么就删除它,或者使用deleteLater()如果你想成为安全起见。
如果你没有小部件指针,使用了QSplitter ::小部件(INT指数)的功能。然后,您可以使用它的deleteLater()插槽。
如果你没有小部件指数,但你还是知道小部件的objectName(),然后的QObject :: findChild()是让小部件指针的唯一途径。
另一种简单的方法来防止孩子从窗口小部件入门删除是使用QSplitter.takeWidget(孩子)。这也是从拆分器中删除小部件的推荐方式。 (Qt Documentation)
提供一个文档链接takeWidget。 – W55tKQbuRu28Q4xv 2010-11-02 06:48:17
我遇到了同样的问题。在Qt 4.8中暂时隐藏QSplitter的一个小部件,我只是隐藏它。然而这还不够,因为分离手柄仍然可以移动。但是手柄可以访问和隐藏,以及:
frameA->setVisible(conditionA);
frameB->setVisible(conditionB);
if (!(conditionA && conditionB)) // if only 1 frame is visible
{
splitter->handle(0)->setVisible(false);
}
- 1. 如何移动QSplitter?
- 2. 如何从webapp2_extras.appengine.auth.models.Unique中删除?
- 3. 如何在QStack中正确添加QWidgets?
- 4. 如何从iphone中的字符串中删除删除/ n/t
- 5. 多QWidgets
- 6. 如何从XML中的foreach中删除?
- 7. 如何从Sql删除“NULL”
- 8. 如何删除从Outlook
- 9. 如何从cpanel删除wordpress
- 10. 如何从base.lproj删除Localizable.strings
- 11. 如何删除$ _ SERVER从PHP
- 12. 如何从Eclipse Helios中删除已删除的项目?
- 13. 如何从服务中删除吊舱而不删除它
- 14. 如何从BiTemporal表中删除(物理删除)行
- 15. 如何从Dojo拖放源中删除/删除项目?
- 16. 如何从选定的树视图中删除/删除行
- 17. 如何从XML文档中删除/删除DOCTYPE声明?
- 18. 如何从iPad中删除应用程序时删除UILocalNotification applicationIconBadgeNumber?
- 19. 从xmlDoc中删除节点,如何删除父节点?
- 20. 如何从Solr索引中删除逻辑删除的文档?
- 21. 如何从DOM中删除子元素时删除父元素?
- 22. 如何从git中删除已删除的文件?
- 23. 如何从boost :: ptr_vector中删除指针而不删除对象?
- 24. JQuery.address如何从网址中删除#(javascript window.location删除#)
- 25. 如何从Bitbucket中删除已删除的文件?
- 26. QSplitter句柄
- 27. PYQT QSplitter问题
- 28. 在QLayout中创建和删除自定义QWidgets时发生内存问题
- 29. QSplitter:如何使第二列变小?
- 30. 如何平均分配QSplitter的宽度
注意,当你设置父为NULL窗口小部件成为主窗口...(除非你先隐藏起来。) – 2012-01-22 08:27:57