Qt zweite .ui öffnen
-
Wie kann man eine andere form .ui anzeigen lassen?!
-
Und du meinst, das wäre jetzt eine verständliche Frage?
-
Ich gehe mal davon aus, dass du bereits ein Fenster hast und zB mit einem Button ein zweites Fenster öffnen möchtest.
Dafür musst du eine zweite Designer-Formularklasse (in meinem Beispielfenster.h
,fenster.cpp
undfenster.ui
) anlegen.fenster.h
#ifndef FENSTER_H #define FENSTER_H #include <QWidget> namespace Ui { class Fenster; } class Fenster : public QWidget { Q_OBJECT public: explicit Fenster(QWidget *parent = 0); ~Fenster(); private: Ui::Fenster *ui; }; #endif // FENSTER_H
fenster.cpp
#include "fenster.h" #include "ui_fenster.h" Fenster::Fenster(QWidget *parent) : QWidget(parent), ui(new Ui::Fenster) { ui->setupUi(this); } Fenster::~Fenster() { delete ui; }
Die
fenster.ui
bearbeitest du einfach im QtCreator, um sie deinen Wünschen anzupassen.In deiner bereits vorhandenen Header-Datei für das erste Fenster, meistens
mainwindow.h
, fügst du folgendes hinzu:public slots: void openSecondWindow();
In der
mainwindow.ui
fügst du einen Button namensbutton
hinzu.Bei der
mainwindow.cpp
musst du diefenster.h
einbinden,button
connecten und den Befehl zum Öffnen des zweiten Fensters geben. (Siehe Zeile 3, 11 und 19ff);mainwindow.h
#include "mainwindow.h" #include "ui_mainwindow.h" #include "fenster.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); connect(ui->button, SIGNAL(clicked()), this, SLOT(openSecondWindow())); } MainWindow::~MainWindow() { delete ui; } void MainWindow::openSecondWindow() { Fenster *f = new Fenster(); f->show(); }