[gelöst] Programm beendet sich selbst
Verfasst: 17. Juni 2008 12:55
Ich habe ein Problem mit meinem Programm und finde den Fehler nicht, ich verwende Qt4.3 und habe folgendes Problem:
Ich verstecke das Hauptfenster mit setVisible(true); so das nur das TrayIcon sichtbar ist:
Wenn ich nun im TrayMenü den Befehl "Test" auswähle, dann öfnet sich der QInputDialog wie gewünscht. Wenn ich diesen Dialog aber mit Okay oder Abbrechen beende, dann beendet sich auch mein Programm. Wenn ich jetzt allerdings setVisible(true); rausnehme, also das Hauptfenster (Dialog) sichbar ist und dann im Traymenü "Test" auswähle, dann geht alles wie gewünscht und mein Programm beendet sich nicht von selber.
Anderer Versuch: Wenn ich setVisible(true); wieder reinnehme (Fenster ist also unsichtbar) und die Routine Entry() direkt aufrufe, ohne das ich es im Traymenü anklicke, dann geht auch alles wie es soll. Nur wenn ich manuell den Menüeintrag auswähle und anklicke beendet sich mein Programm. Was mache ich da falsch?
Bin für Hinweise dankbar,
Teetrinker
Ich verstecke das Hauptfenster mit setVisible(true); so das nur das TrayIcon sichtbar ist:
Code: Alles auswählen
void Prog::CreateTray(){
QMenu *TrayIconMenu = new QMenu(this);
QAction *aEntry = new QAction(QIcon(":/Icons/add.png"), tr("&Test"), this);
connect(aEntry, SIGNAL(triggered()), this, SLOT(Entry()));
TrayIcon = new QSystemTrayIcon(this);
TrayIconMenu->addAction(aEntry);
TrayIcon->setContextMenu(TrayIconMenu);
TrayIcon->setIcon(QIcon(":/Icons/Icon.png"));
TrayIcon->show();
}
Code: Alles auswählen
void Prog::Entry(){
// show();
bool ok;
QString text = QInputDialog::getText(this , "Test", "Geben Sie ein Wort ein.", QLineEdit::Normal, "", &ok);
}
Anderer Versuch: Wenn ich setVisible(true); wieder reinnehme (Fenster ist also unsichtbar) und die Routine Entry() direkt aufrufe, ohne das ich es im Traymenü anklicke, dann geht auch alles wie es soll. Nur wenn ich manuell den Menüeintrag auswähle und anklicke beendet sich mein Programm. Was mache ich da falsch?
Bin für Hinweise dankbar,
Teetrinker