Hallo,
ich habe ein Problem. Ich erstelle mehrere QDialoge die im hintergrund laufen sollen und daher setze ich alle bis auf einen zu Anfang auf hide().
später nach einem keyEvent z.B. mit taste 1 möchte ich den Aktuellen Dialog hide setzten und dafür einen anderen mit show anzeigen lassen.
das hide klappt super.. weil alles weg ist.. aber das show bringt nix
was mache ich falsch?
muss ich noch irgendwas anderes beachten ?
---
QApplication app(argc, argv);
.....
würde ich show und hide hier schon aufrufen ist alles gut..
....
return app.exec();
---
aber ich mache es ja aus einem keyEvent heraus.!!
Problem mit QDialog - nach hide(); geht show(); nicht
Jeps.. hier mein Code.. (vereinfacht)
Meine Main:
Mein HauptFenster
keyEvent
Fenster1
Fenster2
Sage ich im HaptFenster show() oder hide() dann klappt es.
aber wenn ich nun die "1" drücke verschwindet mit dem hide mein fenster 1, aber das Fenster2->show() funktioniert nicht
Meine Main:
Code: Alles auswählen
int main(int argc, char **argv)
{
QApplication app(argc, argv);
HauptFenster my;
my.show();
return app.exec();
}
}
Code: Alles auswählen
HauptFenster::HauptFenster(QWidget *parent): QDialog(parent)
{
setMaximumSize(300,200);
setMinimumSize(300,200);
setContentsMargins(0,0,0,0);
setWindowFlags(Qt::FramelessWindowHint);
...
myFenster1 = new Fenster1(this);
myFenster2 = new Fenster2(this);
myFenster1->show();
myFenster2->hide();
}
Code: Alles auswählen
HauptFenster::keyPressEvent(QKeyEvent* event)
{
if (event->text() == QString("1")) {
myFenster1->hide();
myFenster2->show();
}
}
Fenster1
Code: Alles auswählen
Fenster1::Fenster1(QWidget *parent) : QDialog(parent)
{
setMaximumSize(300,200);
setMinimumSize(300,200);
setContentsMargins(0,0,0,0);
setWindowFlags(Qt::FramelessWindowHint);
....
}
Code: Alles auswählen
Fenster2::Fenster2(QWidget *parent) : QDialog(parent)
{
setMaximumSize(300,200);
setMinimumSize(300,200);
setContentsMargins(0,0,0,0);
setWindowFlags(Qt::FramelessWindowHint);
....
}
Sage ich im HaptFenster show() oder hide() dann klappt es.
aber wenn ich nun die "1" drücke verschwindet mit dem hide mein fenster 1, aber das Fenster2->show() funktioniert nicht
vll hilft das noch:
wenn ich im keyEvent folgemdes mache
dann verschwindet das Fenster zwar, aber es wird nicht wieder angezeigt
ich raffe den fehler nicht?
ich könnte mir vorstellen das es nicht geht, weil ich danach kein ...exec() habe..
-> ein Fenster wir ja erst an der Stelle neu gezeichnet
aber wie sollte ich exec() an der stelle aufrufen??
wenn ich im keyEvent folgemdes mache
Code: Alles auswählen
HauptFenster::keyPressEvent(QKeyEvent* event)
{
if (event->text() == QString("1")) {
myFenster1->hide();
myFenster1->show();
}
}
ich könnte mir vorstellen das es nicht geht, weil ich danach kein ...exec() habe..
-> ein Fenster wir ja erst an der Stelle neu gezeichnet
aber wie sollte ich exec() an der stelle aufrufen??