我有两个示例,其中我基本上是在创建包装器对象,而不是理想情况下的简单转换。
如果 foo
是之前实例化的 QWidget*
,我是否可以避免为其创建包装器 QLayout
:
const auto layout = new QVBoxLayout();
layout->addWidget( foo );
const auto frame = new QLabel( QLatin1String( "Why Do I Need a Layout?" ) );
frame->setLayout( layout );
如果 foo
是之前实例化的 QLayout*
,我是否可以避免为其创建包装器 QWidget
:
const auto widget = new QWidget();
widget->setLayout( foo );
const auto tabs = new QTabWidget();
tabs->addTab( widget, QLatin1String( "Why Do I Need a Widget?" ) );
最佳答案
总是可以编写自己的包装函数:
QLayout* wrap(QWidget* w){
auto layout = new QVBoxLayout();
layout->addWidget( w );
return layout;
}
QWidget* wrap(QLayout* l){
auto widget = new QWidget();
widget->setLayout( l );
return widget;
}
关于c++ - QLayout 和 QWidget 之间的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24262564/