Seite 1 von 1

Mehrere Programme in einem (Haupt)Programm

Verfasst: Donnerstag 4. Oktober 2007, 15:53
von ete
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 :)

Verfasst: Donnerstag 4. Oktober 2007, 16:11
von C4S3
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.^^

Re: Mehrere Programme in einem (Haupt)Programm

Verfasst: Donnerstag 4. Oktober 2007, 16:57
von gerold
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
:-)

Verfasst: Donnerstag 4. Oktober 2007, 17:06
von ete
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

Verfasst: Donnerstag 4. Oktober 2007, 20:44
von poker
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 :)

Verfasst: Dienstag 4. März 2008, 19:00
von sea-live
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