Fenster in Vollbild versetzen (MDI)

Plattformunabhängige GUIs mit wxWidgets.
sprudel
User
Beiträge: 245
Registriert: Donnerstag 8. März 2007, 17:12

Fenster in Vollbild versetzen (MDI)

Beitragvon sprudel » Mittwoch 2. Mai 2007, 16:55

Hallo.

Wie kann ich mein Fenster in den Vollbild-Modus, dh. so dass man keine anderen Fenster mehr sieht, versetzen?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Fenster in Vollbild versetzen (MDI)

Beitragvon gerold » Mittwoch 2. Mai 2007, 17:30

sprudel hat geschrieben:Wie kann ich mein Fenster in den Vollbild-Modus, dh. so dass man keine anderen Fenster mehr sieht, versetzen?

Hi sprudel!

Das hat aber nichts mit MDI zu tun. Mit ``myframe.Maximize(True)`` wird ein Fenster maximiert.

Beim Anzeigen des Frames kannst du statt ``myframe.Show()`` auch ``wx.Frame.ShowFullScreen()`` verwenden. Das Verhalten kann man dabei mit dem style-Parameter verändern.

Siehe: http://wxwidgets.org/manuals/stable/wx_ ... fullscreen

Anwendungsintern kannst du das Fenster auch mit ``myframe.MakeModal()`` in den Vordergrund stellen. Siehe: http://wxwidgets.org/manuals/stable/wx_ ... wmakemodal

Automatisch in den Vordergrund: http://www.python-forum.de/topic-8682.html

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
sprudel
User
Beiträge: 245
Registriert: Donnerstag 8. März 2007, 17:12

Beitragvon sprudel » Mittwoch 2. Mai 2007, 18:46

Ist es dann auch möglich, dass in dem Vollbild-Fenster auch die Menüleiste und die Statusbar angezeigt werden?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Mittwoch 2. Mai 2007, 18:58

sprudel hat geschrieben:Ist es dann auch möglich, dass in dem Vollbild-Fenster auch die Menüleiste und die Statusbar angezeigt werden?

http://wxwidgets.org/manuals/stable/wx_ ... fullscreen
Zur Not im Browser noch einmal "Aktualisieren" klicken.

Folge meinen Links, folge meinen Links, folge meinen L...
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
sprudel
User
Beiträge: 245
Registriert: Donnerstag 8. März 2007, 17:12

Beitragvon sprudel » Mittwoch 2. Mai 2007, 19:02

Was meinst du mit Browser und "Aktualisieren" ???
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Mittwoch 2. Mai 2007, 19:42

sprudel hat geschrieben:Was meinst du mit Browser und "Aktualisieren" ???

Dieses Ding, wo bei dir in der Titelleiste Internet Explorer oder FIrefox, oder Safari, oder Konqueror steht ist der Browser. Du musst also auf den Link klicken, dann um Browser den Aktualisieren-Link klicken (manchmal reicht das drücken der [F5]-Taste, je mach Browser) und dann kannst du lesen was in der Dokumentation steht.

SCNR. :twisted:

Aber warum man aktualisieren sollte, dass muss gerold uns beiden noch erklären, ich sehe da nämlich im Moment auch keinen Sinn darin.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
sprudel
User
Beiträge: 245
Registriert: Donnerstag 8. März 2007, 17:12

Beitragvon sprudel » Mittwoch 2. Mai 2007, 19:54

Leonidas hat geschrieben:
sprudel hat geschrieben:Was meinst du mit Browser und "Aktualisieren" ???

Dieses Ding, wo bei dir in der Titelleiste Internet Explorer oder FIrefox, oder Safari, oder Konqueror steht ist der Browser. Du musst also auf den Link klicken, dann um Browser den Aktualisieren-Link klicken (manchmal reicht das drücken der [F5]-Taste, je mach Browser) und dann kannst du lesen was in der Dokumentation steht.

SCNR. :twisted:

Aber warum man aktualisieren sollte, dass muss gerold uns beiden noch erklären, ich sehe da nämlich im Moment auch keinen Sinn darin.



Mir ist schon klar was ein Browser ist, und auch was Aktualisieren ist ;-) Aber ich frag mich nur wo da der Zusammenhang mit dem Thema ist.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Mittwoch 2. Mai 2007, 20:13

Leonidas hat geschrieben:Aber warum man aktualisieren sollte, dass muss gerold uns beiden noch erklären

Hi euch beiden!

Ich hatte den Link schon vorher gepostet. Dieser Link zeigt zur Erklärung von "wxTopLevelWindow::ShowFullScreen". In dieser Erklärung wird genau das erklärt, was mich sprudel danach noch einmal gefragt hat. Also dachte ich mir, dass es, wie schon öfter bei mir (Firefox; Windows) der Fall war, möglich ist, dass der Firefox nicht korrekt zum besagten Anker-Tag der HTML-Seite gesprungen ist. Wenn die Seite aber vollständig geladen wurde und dann noch einmal F5 gedrückt wird, dann springt der Firefox genau da hin wo er hin soll -- nämlich zum Anker-Tag "#wxtoplevelwindowshowfullscreen".

:wink:

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
sprudel
User
Beiträge: 245
Registriert: Donnerstag 8. März 2007, 17:12

Beitragvon sprudel » Mittwoch 2. Mai 2007, 20:16

Da haben wir dich ja wohl komplett falsch verstanden ;-)

Hab jetzt folgendes Problem:

class Menu(wx.MDIChildFrame):


def __init__(klasse,parent):
klasse.parent = parent
wx.MDIChildFrame.__init__(klasse,parent,-1,title="Hauptmenü")
klasse.SetBackgroundColour(MAINMENUCOLOR)
klasse.ShowFullScreen(True)
klasse.Bars()
klasse.Menu()
klasse.Refresh() #Ein Refresh kann nie schaden ;-)



Statusbar wird angezeigt, Menüleiste nicht. Wenn ich aber nur klasse.Show(True) mache, dann wird die Menüleiste im parent angezeigt.

Ich mache es aber ausdrücklich so:

klasse.SetMenuBar(klasse.menu)

klasse.statusbar = wx.StatusBar(klasse)
klasse.statusbar.SetFieldsCount(3)
klasse.statusbar.SetStatusWidths([-1,-2,-1])

klasse.SetStatusBar(klasse.statusbar)



Was stimmt daran nicht?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Mittwoch 2. Mai 2007, 20:30

Hi sprudel!

Du zerrst an meinen Nerven. Ehrlich!

1. Ersetze "klasse" bitte durch "self". Eine Klasse ist keine Klasseninstanz und "self" ist üblich. So kennen sich andere Python-Programmierer aus, wenn sie deinen Code lesen. Jeder hält sich daran -- bitte du auch.

2. Was von dem Text in dem Link den ich dir gezeigt habe, verstehst du nicht? Hier noch ein Hinweis:

Code: Alles auswählen

wx.FULLSCREEN_ALL ^ (wx.FULLSCREEN_NOMENUBAR | wx.FULLSCREEN_NOSTATUSBAR)


3. Ein MDIChildFrame hat nicht als Vollbild aufgerufen zu werden. Das ist gegen jedes Verständnis von "MDIParent" und "MDIChild". Ein MDI-Child hat innerhalb eines MDI-Parent-Fensters angezeigt zu werden. Und MDI funktioniert nur unter Windows. Du musst also sehr aufpassen und einiges ändern, wenn du dein Programm auch unter Linux und Mac laufen lassen willst.

4. Setze deinen Code in Code-Tags. (du kannst deine eigenen Beiträge mit einem Klick auf den Edit-Button nochmal bearbeiten) --> http://www.python-forum.de/faq.php#21

5. Der Klassenname "Menu" ist, meines Erachtens, zu schwach. Wie wäre es mit "MenuFrame"? Dann weiß man beim Lesen des Codes auch was passiert und muss nicht erst nachschauen was "Menu" überhaupt ist. (muss aber nicht sein)

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
sprudel
User
Beiträge: 245
Registriert: Donnerstag 8. März 2007, 17:12

Beitragvon sprudel » Mittwoch 2. Mai 2007, 20:46

Die funktionieren nicht unter Linux?!

Da steht ja in der Dokumentation garnichts.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Mittwoch 2. Mai 2007, 21:04

sprudel hat geschrieben:Die funktionieren nicht unter Linux?!

Die beiden von wxWidgets unter Linux unterstützten Backends, wxMotif und wxGTK unterstützen beide kein MDI. Ich glaube Qt sollte sowas können, aber ich habe es auch noch die ein Qt-MDI-Fenster unter Linux gesehen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
sprudel
User
Beiträge: 245
Registriert: Donnerstag 8. März 2007, 17:12

Beitragvon sprudel » Mittwoch 2. Mai 2007, 21:07

Verwendet GTK dann etwas anderes, oder gibt es eine Fehlermeldung?
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Mittwoch 2. Mai 2007, 21:15

sprudel hat geschrieben:Verwendet GTK dann etwas anderes, oder gibt es eine Fehlermeldung?

Es gibt ganz einfach keine MDI-Windows mit wxPython unter Linux. Es gibt auch keinen Ersatz und es gibt dafür eigentlich auch nicht wirklich Bedarf. Das einzige MDI-App dass mir bleibend in Erinnerung geblieben ist, war Opera, aber die schwenken auch immer mehr zu Tabs um.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Mittwoch 2. Mai 2007, 21:42

sprudel hat geschrieben:Verwendet GTK dann etwas anderes, oder gibt es eine Fehlermeldung?

Die Child-Fenster werden in einem Notebook angezeigt. Um die "Fenster" dann aber auch schließen zu können und direkt damit arbeiten zu können, musst du diesen "Fall" dann natürlich auch beim Programmieren bedenken.

Ich habe zum Testen ein Ubuntu 7.04 in einer VirtualBox laufen, damit ich dafür nicht immer neu booten muss. Ich muss aber auch zugeben, dass ich selten unter Linux teste, wenn ich weiß, dass der Kunde nur Windows hat und es sich nur um ein für den Kunden angepasstes Programm handelt.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder