Position von wx.MessageDialog

Plattformunabhängige GUIs mit wxWidgets.
Antworten
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Donnerstag 21. Februar 2008, 12:01

Hallo,
eigentlich soll man mit einem Tupel pos=(x,y) die Position eines wx.MessageDialogs bestimmen können. Aber irgendwie klappt das bei mir nicht. Was mache ich falsch?

Code: Alles auswählen

import wx

def testdialog():
    dlg = wx.MessageDialog(None, 'TEST', "Information", wx.OK | wx.ICON_INFORMATION, pos = (100, 100))
    if dlg.ShowModal() == wx.ID_OK:
        pass
    dlg.Destroy()

            
app = wx.App()
testdialog()
app.MainLoop()
Gruß, Seven
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 21. Februar 2008, 12:29

snakeseven hat geschrieben:eigentlich soll man mit einem Tupel pos=(x,y) die Position eines wx.MessageDialogs bestimmen können.
Hallo Seven!
pos
Dialog position. Not Windows.
``pos`` wird unter Windows ignoriert.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Freitag 22. Februar 2008, 11:06

pos
Dialog position. Not Windows.
``pos`` wird unter Windows ignoriert.
Blöd :( Könnten sie in 'wxPython In Action' aber auch dazu schreiben :roll:
Muß ich mir wohl selber basteln.

Grüße,
Seven
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Freitag 22. Februar 2008, 11:15

snakeseven hat geschrieben:Muß ich mir wohl selber basteln.
Hallo Seven!

Ist ja nicht so schlimm. Habe ich auch schon ein paar mal gemacht:

- http://www.python-forum.de/topic-11487.html
- http://www.python-forum.de/topic-10027.html

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 22. Februar 2008, 11:41

Verstehe ich das richtig? Du willst einen Dialog absolut auf dem Desktop positionieren? Da gab es erst letztens eine Diskussion dazu, dass das unter Linux nicht tut und warum das auch schlecht ist.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Samstag 23. Februar 2008, 11:52

Hi Leonidas,

die Diskussion dazu werde ich mir mal raussuchen, ist sicherlich interessant. Aber mich nervt es, dass Applikation und die dazugehörigen Dialoge z.T. ewig weit voneinander entfernt auf dem Bildschirm platziert sind.
Ich möchte die Dialoge daher wenigstens im Umfeld meiner (kleinen) Applikation positionieren, damit man sie als Anwender nicht ständig suchen muß. Eigentlich müßte das ja gehen? Die Bildschirmkoordinaten sind bekannt und Position und Größe der Applikation auch. Na, mal sehen, ob mich der Ergeiz packt :)

Wiedersprüchlich finde ich allerdings, dass bei Windows einerseits 'pos' deaktiviert ist, andererseits dialog.GetPosition() einen Wert liefert.

Grüße,
Seven
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Mittwoch 5. März 2008, 11:23

Ich muss hier nochmal einmal kurz nachhaken..

Kennt einer von eine Möglichkeit einen wx.MessageDialog ``CenterOnParent`` zu bekommen?
Also zumindest bei mir unter WinXP funktioniert das nicht.
Ich habe mir bisher auch mit eigenen Dialogklassen ausgeholfen obwohl ich sehr gerne manchmal einfach nur auf den MessageDialog zurück greifen würde.
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Mittwoch 5. März 2008, 12:45

snakeseven hat geschrieben:
pos
Dialog position. Not Windows.
``pos`` wird unter Windows ignoriert.
Blöd :( Könnten sie in 'wxPython In Action' aber auch dazu schreiben :roll:
Muß ich mir wohl selber basteln.

Grüße,
Seven
Robin Dunn freut sich sicher über Anregungen oder Korrekturen.

Vielleicht auch interessant:
http://www.wxpython.org/bookerrata.php und Forum:
http://www.manning-sandbox.com/forum.jspa?forumID=202
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Mittwoch 5. März 2008, 12:47

snakeseven hat geschrieben:
pos
Dialog position. Not Windows.
``pos`` wird unter Windows ignoriert.
Blöd :( Könnten sie in 'wxPython In Action' aber auch dazu schreiben :roll:
Muß ich mir wohl selber basteln.

Grüße,
Seven
IIRC kommt es auch auf das parent an, bzw. ob der Messagedialog system modal ausgegeben wird oder nicht. Wenn nicht, dann wird der Dialog zentriert über dem aktiven Fenster ausgegeben. Ich hoffe, ich irre mich hier nicht.

Nachtrag: Auch das ist nur ein Gedanke, weiss nicht ob das bei System-Dialogen geht. Aber ein MoveWindow Event an das Fenster schicken, vielleicht ginge dies.
Nachtrag: Das funktioniert anscheinend auch nicht.
Antworten