Seite 1 von 1

[gelöst] MessageBox

Verfasst: 11. Dezember 2007 15:29
von Theranium
Hi Leute,

ich stehe wieder mal vor einem Anfänger-Problem. Ich möchte zunächst ein Programm schreiben, das eine Messagebox öffnet, sobald ein Button betätigt wurde. Die Programme, die ich dazu im internet gefunden habe, laufen nicht. Unter anderem http://www.pro-linux.de/work/qt/qt2ws002.html.
Natürlich habe ich auch die Headerdateien auf die von 4.3 angepasst, aber...

In meinen Qt-Büchern finde ich auch nur komplexe Programme, in denen ganze Fenster implementiert sind, das hilft einem Newby nicht so wirklich...

Verfasst: 11. Dezember 2007 15:41
von Christian81
Laufen nicht ist (mal wieder) eine gute Fehlerbeschreibung...

Was sagt die Konsole wenn du das Programm startest?

Verfasst: 11. Dezember 2007 16:17
von ralli
Eine kleine Nachricht ausgeben als QMessageBox:

Code: Alles auswählen

void ...
{
QMessageBox::information( this, "Info","Mein Programm\n""Version 0.8" );
}   
ralli

Verfasst: 12. Dezember 2007 17:06
von Theranium
Das mit der Funktion hab ich mir schon gedacht, nur wie kann ich die mit dem Button verbinden?

Code: Alles auswählen

connect(okButton, SIGNAL(clicked()), this, SLOT(accept()))

Verfasst: 12. Dezember 2007 17:42
von Theranium
Bis jetzt habe ich eine main-Datei, eine ui_h-Datei und eine weitere Headerdatei für die Implementation der Funktionen. Letztere sieht jetzt so aus:

Code: Alles auswählen

#ifndef ISDNDIALOG_H
#define ISDNDIALÒG_H

#include <QDialog>
#include <QMessageBox>
#include "ui_isdndialog.h"

class C_isdndialog : public QDialog, public Ui_isdndialog
{
	Q_OBJECT::connect(
                     reinterpret_cast<QObject*>(PushButton1),
                     SIGNAL( clicked() ),
                     this,
                     SLOT( showGreeting() )
                     );
				
	// Slot function; called if PushButton1 is sends clicked() Signal
void C_isdndialog::showGreeting()
{
	QString message = "Hallo "+ LineEdit1->text() +"!\n";

	if ( radioButton_dY->isChecked() )
	{
		message += "Internet";
	}

	else if ( radioButton_dN->isChecked() )
	{
		message += "Kein Internet";
	}

	else
	{
		message = "Bitte einen der beiden Checkpunkte selektieren !";
	}
	
	if ( radioButton_aY->isChecked() )
	{
		message += "Analog";
	}

	else if ( radioButton_aN->isChecked() )
	{
		message += "Kein Analog";
	}

	else
	{
		message = "Bitte einen der beiden Checkpunkte selektieren !";
	}
	QMessageBox::information(this, "GrussFenster", message, QMessageBox::Ok);
		
}
			
}//class C_isdndialog

#endif

Verfasst: 12. Dezember 2007 18:23
von Theranium
Diesen Code habe ich mittlerweile in eine Headerdatei und eine Cpp umgeschrieben. Letztere sieht nun so aus:

Code: Alles auswählen

#include <QtGui>

#include "isdndialog.h"

C_isdndialog::C_isdndialog(QWidget *parent) :QDialog(parent)
{
	setupUi(this);
	
	connect(okButton, SIGNAL(clicked()), this, SLOT(showMessage())); 
}//class C_isdndialog



// Slot function; called if PushButton1  is sends clicked() Signal
void C_isdndialog::showMessage()
{
	QString message = "Hallo !\n";// + LineEdit1->text() +"!\n";

	if ( radioButton_dY->isChecked() )
	{
		message += "Internet";
	}

	else if ( radioButton_dN->isChecked() )
	{
		message += "Kein Internet";
	}

	else
	{
		message = "Bitte einen der beiden Checkpunkte selektieren !";
	}
	
	if ( radioButton_aY->isChecked() )
	{
		message += "Analog";
	}

	else if ( radioButton_aN->isChecked() )
	{
		message += "Kein Analog";
	}

	else
	{
		message = "Bitte einen der beiden Checkpunkte selektieren !";
	}
	QMessageBox::information(this, "GrussFenster", message, QMessageBox::Ok);
		
}// showMessage
Allerdings bekomme ich folgende Fehlermeldung in der Konsole:

Code: Alles auswählen

isdndialog.cpp:5: error: new types may not be defined in a return type
isdndialog.cpp:5: error: return type specification for constructor invalid

Verfasst: 12. Dezember 2007 18:25
von Christian81
Irgendwas in deinem Header ist falsch

Verfasst: 19. Dezember 2007 15:07
von Theranium
Jo, du hattest recht. Dummer Anfängerfehler: ich habe am Schluss ein ";" vergessen. Danke für den Hinweis

[gelöst] MessageBox

Verfasst: 14. Mai 2008 11:44
von Theranium
Theranium hat geschrieben:Hi Leute,

ich stehe wieder mal vor einem Anfänger-Problem. Ich möchte zunächst ein Programm schreiben, das eine Messagebox öffnet, sobald ein Button betätigt wurde. Die Programme, die ich dazu im internet gefunden habe, laufen nicht. Unter anderem http://www.pro-linux.de/work/qt/qt2ws002.html.
Natürlich habe ich auch die Headerdateien auf die von 4.3 angepasst, aber...

In meinen Qt-Büchern finde ich auch nur komplexe Programme, in denen ganze Fenster implementiert sind, das hilft einem Newby nicht so wirklich...