[gelöst] MessageBox

Verschiedenes zu Qt
Antworten
Theranium
Beiträge: 50
Registriert: 16. November 2007 15:09
Wohnort: NRW

[gelöst] MessageBox

Beitrag 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...
Zuletzt geändert von Theranium am 14. Mai 2008 11:46, insgesamt 1-mal geändert.
Übernimmst du Verantwortung für dein Leben,
dann wirst du ein Meister...
[diana cooper]
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Laufen nicht ist (mal wieder) eine gute Fehlerbeschreibung...

Was sagt die Konsole wenn du das Programm startest?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
ralli
Beiträge: 45
Registriert: 28. September 2004 06:05

Beitrag von ralli »

Eine kleine Nachricht ausgeben als QMessageBox:

Code: Alles auswählen

void ...
{
QMessageBox::information( this, "Info","Mein Programm\n""Version 0.8" );
}   
ralli
Arch Linux - Openbox: CPU: P4 3,0 - RAM: 2048 MB - Graka: Nvidia Geforce 9500 GT 1024 MB mit aktuellem Nvidia Treiber - HDD: 250 GB und 1 TB - Qt 4.7.0 - QtCreator 2.01
Theranium
Beiträge: 50
Registriert: 16. November 2007 15:09
Wohnort: NRW

Beitrag 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()))
Übernimmst du Verantwortung für dein Leben,
dann wirst du ein Meister...
[diana cooper]
Theranium
Beiträge: 50
Registriert: 16. November 2007 15:09
Wohnort: NRW

Beitrag 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
Übernimmst du Verantwortung für dein Leben,
dann wirst du ein Meister...
[diana cooper]
Theranium
Beiträge: 50
Registriert: 16. November 2007 15:09
Wohnort: NRW

Beitrag 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
Übernimmst du Verantwortung für dein Leben,
dann wirst du ein Meister...
[diana cooper]
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Irgendwas in deinem Header ist falsch
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Theranium
Beiträge: 50
Registriert: 16. November 2007 15:09
Wohnort: NRW

Beitrag von Theranium »

Jo, du hattest recht. Dummer Anfängerfehler: ich habe am Schluss ein ";" vergessen. Danke für den Hinweis
Übernimmst du Verantwortung für dein Leben,
dann wirst du ein Meister...
[diana cooper]
Theranium
Beiträge: 50
Registriert: 16. November 2007 15:09
Wohnort: NRW

[gelöst] MessageBox

Beitrag 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...
Antworten