Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » KDevelop / Qt / wxWidget » QWidget soll nicht blockieren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
30.11.2004, 20:25 Uhr
derphilipder



Hallo!

Ich habe folgendes Problem:

Ich habe ein textgestütztes Menü, also ein Konsolenfenster. Aus diesem wird ein von QWidget abgeleitetes Fenster geöffnet und ein wenig Graphik ausgegeben. Um ins Menü zurückzukommen muss ich dieses Fenster wieder schließen.
Und genau das möchte ich nicht! Ich möchte bei angezeigtem Fenster im Menü weitermachen können.

Wie geht das? Muss ich dazu mit Threads arbeiten?

mfg Philip
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
30.11.2004, 22:21 Uhr
typecast
aka loddab
(Operator)


Es gibt da noch eine andere Moeglichkeit. Du koenntest die Fensterklasse nicht von QDialog ableiten.
Wenn du mit setModal() die Eigenschaft modal setzt (ich weiss jetzt leider nicht auswendig ob man das auf true oder false setzen muss), dann kannn der Rest deines Programms ganz normal weiterarbeiten.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
30.11.2004, 23:00 Uhr
derphilipder



Du meinst von QDialog ableiten - ohne "nicht". Oder?

Das hab ich schon probiert. Komischerweise wird in dem Fenster dann aber nicht gezeichnet, d.h. es bleibt leer.
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
01.12.2004, 01:15 Uhr
typecast
aka loddab
(Operator)


Oh ja genau.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
01.12.2004, 10:04 Uhr
derphilipder



Ja, aber warum ist das so?
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
01.12.2004, 10:41 Uhr
typecast
aka loddab
(Operator)


Hmm. Warum das so ist, kann ich leider nicht genau sagen. Die Qt Dokumentation schweigt sich da auch drueber aus. Das einzige was einer Begruendung nahe kommt ist:


Zitat von Qt-Doku:

Modeless dialogs are displayed using show(), which returns control to the caller immediately.



Daraus ergeben sich 3 Dinge:

1.) Der Parameter fuer setModal() ist false.
2.) Man muss setModal() gar nicht aufrufen, sondern kann einfach die Methode show() verwenden.
3.) Der Codefluss geht sofort nach dem show() Aufruf wieder zuueck an das aufrufende Objekt (also deinen Code). Das legt nahe, dass ein seperater Thread erzeugt wird, da der Dialog dann immernoch lauffaehig ist.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
01.12.2004, 11:02 Uhr
derphilipder



Dann werd ichs mal mit nem Thread versuchen.

Leider peil ich immer noch nicht, wie das mit den Threads funktioniert. Müsste ich in diesem Fall mein DiagramWidget zusätzlich noch von QThread ableiten?
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
01.12.2004, 14:46 Uhr
typecast
aka loddab
(Operator)


Nein, das uebernimmt alle der QDialog. Ich vermute nur, dass ein neuer Thread erzeugt wird (ich kann mir halt nichts anderes vorstellen).

Was da wirklich passiert braucht dich nicht zu kuemmern, das macht QDialog (bzw. die davon abgeleitete Klasse) fuer dich.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
01.12.2004, 19:14 Uhr
derphilipder



Wenn ich das Widget einfach nur mit show aufrufe, kehre ich zwar sofort in meine Application zurück, aber das Widget verschwindet sofort wieder.
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
02.12.2004, 07:20 Uhr
typecast
aka loddab
(Operator)


Das ist ja interessant. Von sowas hab ich noch nie gehoert. Kann ich mal ein wenig Code sehen?
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ KDevelop / Qt / wxWidget ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: