Wie zu zwingen, QWidget werden in einem separaten Fenster angezeigt?

Habe ich

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");
}

und das Hauptfenster MainWindow w;.

Möchte ich

  1. zum erstellen neuer Instanzen von MyWidget von w;
  2. dass Instanzen zerstört, nachdem QCloseEvent oder mit w (jetzt sind Sie zerstört nur nach QCloseEvent);
  3. dass Instanzen erscheinen in neuen Fenstern.

Erstelle ich eine neue Instanz von MyWidget wie diese:

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

Wenn ich versuche zu erstellen widg mit w als parent, widg innerhalb der w (in der linken oberen Ecke).

Was ist der einfachste und beste Weg, um das zu beheben?

Dank!

InformationsquelleAutor artyom.stv | 2011-03-04
Schreibe einen Kommentar