Как заставить QWidget отображаться в отдельном окне?

У меня есть

class MyWidget : public QWidget
{
    Q_OBJECT
public:
    explicit MyWidget (QWidget *parent);
    // ...
};

// here is ALL the code in MyWidget constructor
MyWidget::MyWidget(QWidget *parent)
    : QWidget(parent)
{
    glWidget = new GLWidget(this, cluster);

    QHBoxLayout *mainLayout = new QHBoxLayout;
    mainLayout->addWidget(glWidget);
    setLayout(mainLayout);

    setWindowTitle("Visualization");
}

и главное окно MainWindow w; .

Я хочу, чтобы

  1. создавал новые экземпляры MyWidget из w ;
  2. , что экземпляры, подлежащие уничтожению fter QCloseEvent или с w (теперь они уничтожаются только после QCloseEvent );
  3. , чтобы экземпляры появлялись в новых окнах.

Я создаю новый экземпляр MyWidget следующим образом:

void MainWindow::visualize()
{
    MyWidget *widg = new MyWidget(this); // or widg = new MyWidget(0)
    widg->show();
    widg->raise();
    widg->activateWindow();
}

Когда я пытаюсь создать widg с w в качестве родителя ], widg появляется внутри w (в левом верхнем углу).

Каков самый простой и понятный способ исправить это?

Спасибо!

6
задан artyom.stv 5 March 2011 в 12:32
поделиться