Programm Beenden ?!

Alles rund um die Programmierung mit Qt
Antworten
scarfish
Beiträge: 6
Registriert: 6. März 2008 20:57

Programm Beenden ?!

Beitrag von scarfish »

Hi, hab hier winziges Programm, bei dem ich es irgendwie nicht schaffe es über einen Button zu beenden, bzw. das einzige Widget zu schließen, und ich wollte einfach mal fragen, ob mir jemand sagen kann, was da in meinem Code nicht stimmt. Also hier mal der Code:

test.cpp

Code: Alles auswählen

#include <QApplication>

#include <QPushButton>
#include <QVBoxLayout>
#include <QObject>
#include <QWidget>
#include "mywidget.h"

int main(int argc, char *argv[])
{

	QApplication app(argc, argv);	

	MyWidget* element=new MyWidget;      	

	element->show();

	return app.exec();

}
mywidget.h

Code: Alles auswählen

#ifndef MYBUTTON_H
#define MYBUTTON_H

#include <QWidget>
#include <QVBoxLayout>
#include <QLabel>
#include <QPushButton>
#include <QObject>

class MyWidget : public QWidget
{
	Q_OBJECT
	public:
	QVBoxLayout* VLayout;
	QLabel* label;
	MyWidget();
	public slots:
	void test();
};
#endif
mywidget.cpp

Code: Alles auswählen

#include "mywidget.h"
MyWidget::MyWidget() : QWidget()
{
	VLayout = new QVBoxLayout(this);
	label = new QLabel("test1");
	QPushButton* Button1 = new QPushButton("Button 1");
	QPushButton* Button2 = new QPushButton("Button 2");
	Button1->resize(100,30);
	Button2->resize(200,60);
	
	VLayout->addWidget(label);
	VLayout->addWidget(Button1);
	VLayout->addWidget(Button2);
	
	setLayout(VLayout);
	QObject::connect( Button1, SIGNAL(clicked()),
			  this, SLOT( test())	);
	QObject::connect( Button2, SIGNAL(clicked()),
			  this, SLOT( quit())	);
	
}

void MyWidget::test()
{
	label -> setText("test2");
}
achja, benutze Linux, falls das irgendwie interessant dafür ist.
MfG scarfish
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Du bekommst 100%ig auf der Konsole die Meldung, daß der Slot quit() nicht existiert, oder?

Der Slot, den du suchst, findest du bei QApplication...
scarfish
Beiträge: 6
Registriert: 6. März 2008 20:57

Beitrag von scarfish »

oh, du hast recht, bin noch nicht lang dabei, und wusste gar nicht, das da beim starten auch noch debug informationen in der Konsole auftauchen.
Nur in dem Buch was ich lese, wird auch ein Widget auf diesem Weg beendet und es stand ja auch drin, das wenn das Haupt Widget beendet wird, auch das ganze Programm beendet wird.

Edit: Jo, also habs jetzt mit close ersetzt, wieder was gelernt^^ Dankö
Antworten