ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Qt 布局操作记录

Qt 布局操作记录

初始化

mainLayout = new QVBoxLayout(this);

上面的代码表示创建了一个垂直布局 mainLayout,而且将当前对象 this 的布局设置为 mainLayout

添加控件到布局

mainLayout->addWidget(button1);
mainLayout->addWidget(button2);

使用addWdiget函数可以将控件添加到指定布局中,上述代码添加了两个按钮控件到布局 mainLayout 中,这两个按钮将会垂直排列显示。

父对象的改变

布局对父对象的改变:
(1)将控件添加到布局之前,如果该控件已经被设置了父对象,那么布局不会改变其父对象。
(2)当我们使用layout->addWidget(widget)时,如果该widget还没有父对象,则布局会将其父对象设置为该布局所属的widget。

重复设置布局的问题

mainLayout = new QVBoxLayout(this);
titleLayout = new QHBoxLayout(this);

上面的代码会报以下问题
QLayout: Attempting to add QLayout "" to MainWindow "", which already has a layout
因为,当前对象 this 已经设置了布局后,我们尝试再次对其设置布局会出现重复设置的提示。

返回列表