假设我有一个主 Widget,用于查看一些对象。这些对象的名称存储在 QListWidget 中。现在,当用户选择一个对象(QListWidget 的一个条目)时,我想打开另一个窗口中的另一个 Widget,并将该对象的名称作为参数传递。
class MainWidget
{
Q_OBJECT
public slots:
void openSelection();
};
class ChildWidget
{
public:
ChildWidget(QString name, QWidget* parent = nullptr);
};
void MainWidget::openSelection()
{
QString selectedObjectName = ui->objectsNamesList->selectedItem()->text();
ChildWidget* detaildedWiew = new ChildWidget(selectedObjectName, this);
detaildedWiew->show();
}
当我这样做时,子小部件会打开,但它没有自己的空间。它被锁定在父元素的区域内。我需要释放孩子们,在屏幕上自由奔跑,独立于其父元素。我该如何做?有没有Qt的方法,还是我必须定义一些“伪子代”关系并开发一个系统来正确删除伪子代?