首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QLayout与QWidget之间的转换

QLayout与QWidget之间的转换
EN

Stack Overflow用户
提问于 2014-06-17 11:27:41
回答 2查看 3.7K关注 0票数 1

我有两个示例,基本上是创建包装器对象,而不是理想的简单转换。

如果foo是前面实例化的QWidget*,那么我可以避免为它创建一个包装器QLayout吗?

代码语言:javascript
复制
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吗?

代码语言:javascript
复制
const auto widget = new QWidget();
widget->setLayout( foo );
const auto tabs = new QTabWidget();
tabs->addTab( widget, QLatin1String( "Why Do I Need a Widget?" ) );
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-24 12:05:37

小部件不必有布局。通过将小部件设置为父部件,您可以将子部件添加到小部件中。但是,您必须手动调整子部件的大小和位置。

票数 2
EN

Stack Overflow用户

发布于 2014-06-17 14:00:05

只需编写您自己的包装函数:

代码语言:javascript
复制
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;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24262564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档