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

时间:2012-07-27 09:03:09

标签: 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();
}

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

1 个答案:

答案 0 :(得分:4)

您可以使用QWidget::setWindowFlags(Qt::Window)将窗口小部件设置为单独的窗口。 另请查看Qt::WindowFlags