如何独立制作子窗口小部件?

Mar*_*dik 5 c++ qt

假设我有一个主Widget,用于查看一些对象.这些对象的名称存储在QListWidget中.现在,当用户选择一个对象(QListWidget的一个项目)时,我想在一个单独的窗口中打开另一个窗口小部件,该窗口将对象的名称作为参数.

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();
}
Run Code Online (Sandbox Code Playgroud)

当我这样做时,子窗口小部件打开,但它没有自己的空间.它被锁定在父母的区域内.我需要让孩子们自由,在屏幕上自由奔跑,独立于他们的父母.我怎样才能做到这一点?是否有一些Qt方式,或者我是否必须定义一些"伪子"关系并开发一个系统来正确删除伪孩子?

han*_*ank 4

您可以使用它QWidget::setWindowFlags(Qt::Window)使您的小部件成为一个单独的窗口。另请查看Qt::WindowFlags