【发布时间】:2011-04-15 02:02:42
【问题描述】:
我想要实现的是一个小部件可以存在于两种不同的布局中,在本例中是 QHBoxLayout 和 QVBoxLayout。我正在实现一个系统,当设备的屏幕方向发生变化时,它会在两种布局之间动态切换。
目前我正在创建一个名为 MyWidget 的复杂复合小部件,并将其添加到两个不同的布局中:
MyWidget *wgt = new QWidget();
QVBoxLayout vlayout;
QHBoxLayout hlayout;
vlayout->addWidget(wgt);
hlayout->addWidget(wgt);
现在假设这两种布局都托管在“根”布局中,并且该根布局可以调整为比高更宽的“横向”模式,以及比高比宽的“纵向”模式。
MyWidget 仅在它添加到的第一个布局中正确显示,当布局切换时,它显示全部错误或根本不显示。
我不知道我在这里是否有意义,但这是我的问题。也许当调用 switch 事件时,所有子小部件和布局都应该调整大小,所以它看起来总是正确的。唯一的问题是我不知道怎么做。
【问题讨论】: