Mehrere Programme in einem (Haupt)Programm

Plattformunabhängige GUIs mit wxWidgets.
Antworten
ete
User
Beiträge: 218
Registriert: Montag 19. Februar 2007, 13:19
Kontaktdaten:

Donnerstag 4. Oktober 2007, 15:53

Hallo!

Ich fang gerade an, mit wxPython zu arbeiten (vorher Tkinter) und brauche einen Ratschlag zur Umsetzung.

Ich möchte folgendes tun:

Ein Hauptprogramm, das mehrere Programme enthält (z.B. Einheiten Konverter, xy Berchner usw.).
Wie setzt man das am Besten um? Meine Idee wäre ein Notebook mit meherern Tabs. Also ein Tab für jedes Programm.

Macht das Sinn, oder gibt es einen schöneren Weg?

Liebe Grüsse

Stefanie :)
Benutzeravatar
C4S3
User
Beiträge: 292
Registriert: Donnerstag 21. September 2006, 10:07
Wohnort: Oberösterreich

Donnerstag 4. Oktober 2007, 16:11

Ich persönlich würde versuchen, es über Childwindows zu lösen, weil es mir zum Anfangen am einfachsten erscheint (über Tastenkürzel startbar). Das mit den Tabs ist allerdings auch eine gute Idee.
Die Frage ist halt, wie man die am einfachsten über die Tastatur ansteuern kann, damit man nicht immer diese Ding... äh, die Maus benutzen muss.

Was ich auch fein finden würde: wenn man diese Tools eben als richtige "Tools" andocken könnte.
Man kennt das ja: du hast ein Fenster und Links und/oder Rechts eine "Slit", wo dann Eigenschaftenfenster, Klassenbrowser, .... sind.
Man könnte so ein Tool (z.B. den Konverter) mit einem Tastenkürzel starten und wenn nötig mit der Maus dann in so ein Dock ziehen, wo es festklebt.

Aber was rede ich? Ich versuch jetzt erst mal ein paar Widgets mit Sizern auf nem Frame darzustellen.^^
Gruß!
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 4. Oktober 2007, 16:57

ete hat geschrieben:Ein Hauptprogramm, das mehrere Programme enthält (z.B. Einheiten Konverter, xy Berchner usw.).
Hallo Stefanie!

1.) Lass dich von der wxPython-Demo inspirieren.

2.) Jedem Progrämmchen seinen eigenen Ordner spendieren:

Code: Alles auswählen

hauptprogramm\
  |-images\
  |
  |-unterprogramm1\
  |   |-images\
  |   |-unterprogramm1.py
  |
  |-unterprogramm2\
  |   |-images\
  |   |-unterprogramm2.py
  |
  |-hauptprogramm.py
3.) Lass dich von der wxPython-Demo inspirieren. ;-)

4.) Jedes Progrämmchen so schreiben, dass es komplett in einem Panel läuft. Damit das kleine Progrämmchen auch unabhängig gestartet werden kann: Bei direktem Start (__main__), Panel in ein Frame legen und anzeigen.

5.) Die Unterprogramme in das Hauptprogramm als normale Python-Module importieren. Im Hauptprogramm kannst du die Panels z.B. in ein Notebook laden. Du kannst aber auch ein Treebook zur Verwaltung nehmen und das jeweils aktuelle Panel in ein SplitterWindow laden. Wie du diese Panels einbindest, bleibt deiner Phantasie überlassen. Hauptsache, du bindest sie *nicht* alle sofort beim Programmstart mit ein. Immer nur dann, wenn ein Panel gewünscht wird. Sonst wird dein Programm immer langsamer je mehr Panels du einbindest.

6.) Lass dich von der wxPython-Demo inspirieren. :mrgreen:

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
ete
User
Beiträge: 218
Registriert: Montag 19. Februar 2007, 13:19
Kontaktdaten:

Donnerstag 4. Oktober 2007, 17:06

Hallo!

Danke für die Tips!

Die Demo ist natürlich super hilfreich (da hab ich schliesslich das Notebook her :P ) und ausserdem hab ich gerade "Python in Action" bekommen.

Ich wollte mir nur vor dem GUI sicher sein, wie ich es darstelle. Ich als "Anwender" würde mich für die Tabs eines Notebooks entscheiden aber ich wolte noch einige andere Meinungen hören.

Liebe Grüsse und danke :)

Stefanie
poker
User
Beiträge: 146
Registriert: Donnerstag 20. September 2007, 21:44

Donnerstag 4. Oktober 2007, 20:44

Jupp, kann mich da der Meinung von gerold nur anschließen. Hab mich auch von der wx Demo inspirieren lassen und hat bei einem meiner Projekte auch sehr gut funktioniert :)
sea-live
User
Beiträge: 440
Registriert: Montag 18. Februar 2008, 12:24
Wohnort: RP

Dienstag 4. März 2008, 19:00

Das gleiche Problem steht bei mir auch an ich Habe 3 Einzel und Laufende Programme
ein Hauptprogramm
bei druck auf button soll ein wx.frame aufgehen Anzeige class Auswahl() aus der 2ten Datei auswahl.py
hier wird dann durch auswahl wine Metode ausgelöst Ihre auswahl
diese öffnet dann ein drittes fenster datei chart klasse Fenster(wx.Frame)
diese klasse Fenster soll dann 3strings übergeben werden und dann das fenster wie gewohnt gefülllt werden

WELCHE DEMO MUSTERDATEI wäre da die interesanteste um die richtung vorzugeben
ich hab mal die 3Programme hier abgelegt
neue version und es geht
Tkinter Hauptprogramm wx frame über CHART und dann panel
http://www.python-forum.de/viewtopic.php?p=92410#92410


DANKE
Antworten