问:布局和小部件有什么区别?

Łuk*_*Lew 7 user-interface qt qt4

我认为布局只是一个小部件,可以保留更多的小部件.但现在我发现我无法使用addWidget将其添加到其他小部件中.例如,如何向QSplitter添加布局?

Kal*_*son 6

QWidget通过layout()setLayout(...)函数内置了对布局的支持。布局对象控制可以添加到布局中的不同子小部件的定位。此外,它确保根据指定的约束正确调整其父小部件的大小。如果布局还没有父小部件,那么只要布局附加到带有 的小部件setLayout(),它就会设置该父小部件的大小。

但是,有些小部件更像是一个布局管理器而不是小部件,例如QSplitterQTabWidget。例如,考虑 QSplitter。虽然是一个小部件,但它提供了两个可以使用的不同区域。在这种情况下,两个不同区域的单个布局管理器实际上没有意义。与 QSplitter 一样,QTabWidget 也有一些行为,这使得单个布局不仅没有必要而且没有用。

我认为正是上述布局和小部件的融合使得布局和小部件的分离有时令人困惑。