QT:两个布局添加相同的小部件

标签 qt layout widget hide

在 Qt 中:我创建一个 widget-ui 类,我想让该小部件出现在两个单独的基本小部件(或窗口)中的两种不同布局中。所以我想:

widget_based_class* inside = new widget_based_class(base_widget1);

QHBoxLayout *lay1=new QHBoxLayout(base_widget1);
base_widget->setLayout(lay1);
lay1->addWidget(inside);
base_widget1.show();

-------------------------------
base_widget1.hide();
QHBoxLayout *lay2=new QHBoxLayout(base_widget2);
base_widget->setLayout(lay2);
lay2->addWidget(inside);
base_widget2.show();

我怎样才能实现这个目标? (我的程序比较复杂,我没有看到代码工作。) 坦克你。

最佳答案

QWidget 只有一个父窗口部件,并且该父窗口部件中只有一个几何图形(位置和大小)。每次调用 QLayout::addWidget() 都会将该小部件重新设置为安装布局的小部件。

您对 setLayout 的第二次调用将无法按预期工作,因为您必须在设置新的布局管理器之前删除现有的布局管理器:

delete base_widget->layout();
base_widget->setLayout(lay2);

如果base_widget还没有布局管理器,则布局管理器lay2将简单地重新设置父级。

关于QT:两个布局添加相同的小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12648709/

相关文章:

javascript - 使用 QML 和 QtQuick2 时如何将 .js 文件包含在另一个 .js 文件中?不涉及浏览器

c++ - Qt音频输入错误:pcm_params.c:2348::sndrv_pcm_hw_params:L断言«err> = 0

qt - 如何告诉cmake用autouic生成的ui文件在哪里

android - 如何设置 android TextView 以剪切任何不适合布局的字母

html - 对齐和间隔 Material Design Lite 文本输入字段的最佳方法是什么?

python - Pyqt:获取光标下的文本

python - 通过共享节点属性定位 networkx 节点

Jquery UI Widget 问题 - 圆 Angular

android - 如果我尝试启动服务,为什么会收到 InstantiationException?

javascript - 网页中的经典富文本格式