Ich habe einen Dialog der beim Anzeigen zur Hälfte nicht auf dem Bildschirm erscheint. Warum ist mir unklar.
Daher wüsste ich gerne was die Startposition (Anzeigeposition) eines Dialogs festlegt und ob es spezielle Methoden gibt Dialoge auf dem Bildschirm anzuordnen oder zu zentrieren?
(und ja, ich habe in der Suche und der Doku zu QDialog geschaut)
Dialog Start Position festlegen
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Whol nicht genug: http://doc.trolltech.com/4.3/qwidget.html#pos-prop
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Das Problem ist, das man manchmal wissen muss wo man suchen soll.Christian81 hat geschrieben:Whol nicht genug: http://doc.trolltech.com/4.3/qwidget.html#pos-prop
Jetzt nutze ich frameGeometry() zum Abfragen und stelle fest das der Wert bei 0 oder <0 liegt. Wenn ich aber nur über setGeometry(WindowRect); einen neunen Wert zuweise dann ist das ja nicht identisch mit frameGeometry. Eine Funktion setFrameGeometry konnte ich hingegen nicht finden.
Wie weist man dann die frameGeometry zu ?
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Ich weiss nicht genau was Du machen willst, aber vielleicht hilft http://doc.trolltech.com/4.3/geometry.html schon weiter - wenn nicht, bitte genauer beschreiben.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Re: Dialog Start Position festlegen
Den Fehler solltest Du aber zuerst suchen. Im Kontruktor deines Dialoges sollte zuerst setupUi(this) kommen und nichts anderes. Ansonsten zum sichern und wiederherstellen der Position saveGeometry und restoreGeometry.pospiech hat geschrieben:Ich habe einen Dialog der beim Anzeigen zur Hälfte nicht auf dem Bildschirm erscheint. Warum ist mir unklar.
Anpassungen mit setGeometry, falls Auflösungswechsel stattfand und der Dialog nicht korrekt angezeigt wird. setFrameGeometry braucht man nicht unbedingt, da man Unterschiede zu geometry berechnen und in geometry einfliessen lassen kann.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Im Konstruktor steht als erstes ein setupUi(this). Was ich mache ist von MainWindow aus dem Menu heraus einen Dialog zu starten. Dessen Startgeometry ist anscheint abhängig von der Position von MainWindow. Wenn MainWindow relativ weit oben am Bildschirm ist, dann wird der Dialog höher gestartet. Irgendwann ist die geometry dann so, dass ein Teil der Dialogs außerhalb des Bildschirms gezeichnet wird. So dass also folgendes zutrifft
Code: Alles auswählen
QRect WindowRect= this->frameGeometry();
if (WindowRect.top() < 0 )
...-
PeterLustig
- Beiträge: 386
- Registriert: 21. November 2007 20:07