我有两个例子,我基本上是在创建包装器对象,而不是理想的简单转换。
如果前面已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?" ) );
答案 0 :(得分:1)
总是可以编写自己的包装函数:
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;
}
答案 1 :(得分:1)
小工具不必具有布局。您可以通过将窗口小部件设置为其父窗口,将子窗口小部件添加到窗口小部件。但是,您必须手动调整子窗口小部件的大小和位置。