verschiedene Frames

Plattformunabhängige GUIs mit wxWidgets.
Gast

verschiedene Frames

Beitragvon Gast » Dienstag 13. September 2005, 15:09

Hi leute..

ich habe folgenes problem...ich schreibe in Python gerade ein grafisches Datenbankabfragetool....ich wollte es so gestalten das man neue Einträge anlegen kann und zwar in einem neuem Frame...meine Frage...: muss ich für das neue Frame eine neue Klasse anlegen und wenn ja: wo muss diese klasse dann hin... :?: .....bis jetz ist es in etwa so aufgebaut...:

Code: Alles auswählen

class MainWindow(wx.Frame):
    def __init__(self,parent,id, title):                                                                                                                 
        wx.Frame.__init__(self,parent,1,title,size=(500,200),                     
        style=wx.DEFAULT_FRAME_STYLE|wx.NO_FULL_REPAINT_ON_RESIZE)

        #Jede menge TextCrtl's und Button

    self.Show(True)

    #ein par kleine Methoden


app = wx.PySimpleApp()

frame_main=MainWindow(None, -1, 'Test')

app.MainLoop()



Danke im voraus :D

Edit (Leonidas): Code in Python-Tags gesetzt.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Beitragvon CM » Mittwoch 14. September 2005, 12:13

Hoi,

mir ist Dein Problem nicht ganz klar, aber ich glaube Du möchtest eigentlich nur einen Dialog öffnen lassen, wo Nutzer Einträge machen können? Ja?
Dann versuche folgendes:

Code: Alles auswählen

import MyDialog

#und in der Hauptklasse
    def DefineMyDialog(self,event):
        mydialog = MyDialog(self, *args,**cmds)
        mydialog.Show()

#und MyDialog (am besten in einem anderen Modul, der
#Uebersichtlichkeit halber) wuerde in etwa so aussehen:
class MyDialog(wx.Dialog):
    def __init__(self,*args,**cmds):
        wx.Dialog.__init__(self,*args,**cmds)
        #etc.

Am besten mal in der Demo nachschauen, welche Optionen Du sonst noch hast. Oder Du suchst meine alten Threads ab - denn vor nicht allzulanger Zeit habe ich eine ähnliche Frage gestellt und darauf bestanden, daß man sie für Dumme erklärt. Es hat geholfen: Inzwischen weiß ich wie es geht ;-).
Wenn ich nicht richtig geraten habe, magst Du vielleicht nochmal genauer fragen?

Viel Erfolg,
Christian
Gast

Beitragvon Gast » Donnerstag 15. September 2005, 08:08

ja....äh...ok habe glaube ich noch ne falsche vorstellung wo klassen genau hinmüssen damit sie sich nich gegenseitig blockieren (wenns das überhaupt gibt...)normal wäre es doch immer so erst kommt die klasse dann wird sie initialisiert und dann kommt bei mir self.Show() damit das Fenster geöffnet wird danach kommen die Methoden und usw. jetz hab ich die Methode DefineMyDialog zu den anderen Methoden gepackt und nun frag ich mich wo die klasse hinmuss???

bitte helfen.... :lol: :oops:
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Beitragvon CM » Donnerstag 15. September 2005, 09:13

danke für die Hilfe aber...
Ich danke dir für die Hilfe aber mir fehlt noch wo genau ich die Klasse unterbringen muss...du hast geschrieben das die klasse in ein neues Modul muss...ja...was meinst du mit einem Modul und wo kann die Klasse alternativ untergebracht werden bitte für dumme denn ich kann irgendwie nich nach deinen schon erstellten sachen suchen...


Hi,

das Zitat stammt aus einer privaten Nachricht, die, wie ich vermute, mit diesen Thread zusammenhängt. Mal nebenbei: Private Nachrichten bringen nicht so viel, wenn man allgemeine Fragen stellen will ...

Aaalso: Wo genau ist das Problem? Module bei GUIs verhalten sich ebenso wie Module in anderen Programmen. Du kannst - da Du ja einen Mainloop am Ende des Hauptmodul startest, der garantiert, das Python alles eingelesen hat, bevor irgendetwas aufgerufen wird - alles in eine Datei packen. Das wird ziemlich unübersichtlich. Oder Du machst verschiedene logische Einheiten (was auch immer das für Dich bedeutet) in verschiedene Dateien und importierst diese am Anfang Deines Hauptmoduls. Damit steht deren Namensraum auch zur Verfügung. Sogar rekursives Importieren klappt in Python reibungslos, wenn man from x import * vermeidet, denn dann kann es u. U. zu Problemen kommen. Näheres kannst Du auch hier erfahren.

Alles klar? (Ich könnte mir noch gut vorstellen, daß Du beim ersten Mal Probleme mit dem eigentlichen Code haben wirst - dann frage hier halt nochmal ganz konkret nach, am besten am Beispiel.)

Gruß,
Christian
jschmidt
User
Beiträge: 6
Registriert: Donnerstag 15. September 2005, 08:20

Beitragvon jschmidt » Donnerstag 15. September 2005, 09:30

danke das müsste mir helfen...

Wer ist online?

Mitglieder in diesem Forum: Google [Bot]