Quit Button in Qt
-
Hallo Zusammnen
Ich versuche mich ein bischen in Qt und wollte als erstes ein Button der die Applikation einfach nur beendet erstellen. Kriege keine Fehler aber der Button Funktioniert einfach nicht.
Vielen Dank
int main(int argc, char *argv[]) { QApplication a(argc, argv); QtApp w; QPushButton quitButton; QObject::connect(&quitButton, SIGNAL(clicked()), qApp, SLOT(quit())); w.show(); return a.exec(); }
-
Was heißt "funktionier nicht"?
Wird er angezeigt?
Kannst du ihn anklicken?
Oder beides, aber es passiert nichts?Weiters wäre es besser, den Button im Fenster zu erstellen, wo er sein soll, nicht in der
main.cpp
.
Also dort, wow
definiert wird, meistensmainwindow.cpp
.Hier ist ein einfaches Setup, was das Erwünschte tut.
Diemain.cpp
dient eigentlich nur zum erstellen der Applikation und des ersten Fensters.
Das erste Fenster hat dann die Aufgabe, seine eigenen Childs zu erstellen.**
main.cpp**#include "mainwindow.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }
mainwindow.cpp
#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(close())); } MainWindow::~MainWindow() { delete ui; }
-
Er passiert nichts wenn ich den button drücke.
Nun sagt er mir hier das ui ein pointer typ braucht..
ui->setupUi(this);
Habe ui so in privat definiert:
Ui::QtAppClass->ui;
-
Ich gehe schon davon aus, dass du auch eine mainwindow.h hast, so wie es Qt standardmäßig erstellt?
Weiters benötigst du eine mainwindow.ui, wo der Button pushButton vorkommt.
Nur so kannst du dann vie ui->pushButton darauf zugreifen.Hätte nicht gedacht, dass ich ein komplettes Tutorial posten soll, es war nur als Anstoß in die richtige Richtung gedacht, damit du eine Idee davon bekommst, wie so ein Qt Programm aufgebaut ist.
Edit: Ein kleiner Wink.