如何在初始化后将一个 QWidget 作为子控件添加到另一个 QWidget 中?

问题描述 投票:0回答:1

我想做的事情很简单。每当我触发某个插槽时,我想将 QLabel 添加到 QFrame(或 QWidget)。

如果我将下面的代码放在

MainWindow
的构造函数中,即使在
ui->setupUI(this)
之后:

QLabel * pLabel = new QLabel("abc", ui->frame);

这有效

但是,如果我将此行移动到

MainWindow
的槽位,例如
shortcut
,它不会显示任何东西。 我怎样才能正确添加这个?

注意:我不想将其添加到布局中。我需要它覆盖在其他人身上,并且我需要管理它的确切位置。

qt qwidget
1个回答
5
投票

创建

show()
 后,您必须显式调用 
QLabel

QLabel * pLabel = new QLabel("abc", ui->frame);
pLabel->show();

来自文档

...如果您将子窗口小部件添加到已经可见的窗口小部件中,则必须 明确地显示孩子以使其可见...

© www.soinside.com 2019 - 2024. All rights reserved.