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