Seite 1 von 1

Wechsel zwischen zwei Oberflächen

Verfasst: Dienstag 19. August 2008, 11:14
von sephos
Hallo,
ich habe zwei grafische Oberflächen gebastelt. Nun ist es so das die Hauptoberfläche eine andere grafische Oberfläche aufruft. Wenn die zweite aufgerufen wird ist diese aber hinter der ersten "versteckt". Gibt es eine Möglichkeit die zweite vor die Hauptoberfläche zu bringen und wenn ja wie :K ?? Für Hilfe bin ich echt dankbar :lol: . Zur Erstellung habe ich den Boa Constructor genutzt.

MFG Sephos

Verfasst: Dienstag 19. August 2008, 12:10
von CM
Hallo und willkommen im Forum,

zur Beantwortung dieser Frage bietest Du leider viel zu wenig Information. Erst daraus, dass Du den BoaConstructor verwendet hast, kann man erkennen, dass es sich beim GUI-Toolkit um wxPython handelt. Dafür haben wir übrigens ein ExtraUnterforum.

Wie geschieht denn der Aufruf der zweiten Oberfläche? Was ist das für eine Oberfläche? Am besten ist es, wenn Du dazu den relevanten Code in einem lauffähigen Minimalbeispiel zeigst. Wenn dazu rel. viel Code gebraucht wird, kannst Du den Code hier posten und dann im Forum verlinken, denn das Forum wird sehr langsam, wenn in einem Thread viel Code steckt.

Gruß,
Christian

Verfasst: Dienstag 19. August 2008, 15:53
von sephos
Hallo
also ich habe den Fahler bereits gefunden, vielleicht interessiert die Lösung dennoch jemanden :lol:

Dies ist der Code für die GUI für mein Hauptprogramm:

Code: Alles auswählen

wx.Frame.__init__(self, id=wxID_FIRMA, name='Firma',
              parent=prnt,  size=wx.Size(758, 768),
              style=wx.FRAME_TOOL_WINDOW | wx.SYSTEM_MENU | wx.DOUBLE_BORDER | wx.DEFAULT_FRAME_STYLE  |  wx.STAY_ON_TOP, 
              title='Firma')
        self.SetClientSize(wx.Size(750, 741))
        self.SetBackgroundColour(wx.Colour(146, 178, 193))
        self.Centre()
        self.Bind(wx.EVT_CLOSE,self.OnFrameClose,id = wxID_FIRMA)
Meine zweite Oberfläche wird durch einen Button-Klick aufgerufen
Hier der Code für die zweite Oberfläche:

Code: Alles auswählen

wx.Frame.__init__(self, id=wxID_FRAME1, name='', parent=None ,
              pos=wx.Point(433, 245), size=wx.Size(408, 355),
              style=wx.CAPTION | wx.HSCROLL | wx.ALWAYS_SHOW_SB | wx.DOUBLE_BORDER | wx.NO_3D,
              title='Identifikation')
Gefehlt hatte bei mir der Aufruf | wx.STAY_ON_TOP, bei der zweiten Oberfläche, danach funktionierte es

Code: Alles auswählen

class BoaApp(wx.App):
    def OnInit(self):
        
        self.main = create(None)
        self.main.Show()
 
        self.SetTopWindow(self.main)
        return True

def main():
    
    application = BoaApp(0)
    application.MainLoop()
   
    
if __name__ == '__main__':
    main()      
Gruss Sephos

Verfasst: Dienstag 19. August 2008, 16:42
von CM
Sag' mal: Bist Du mit User Xisto und seinem Thread identisch oder habt ihr was miteinander zu tun?

Ist ja auch egal. Aber Dein Code sieht ein wenig seltsam aus, so ohne das klar wird wo wx.Frame.__init__() steht, würde ich jedenfalls nicht weiter wissen. Und wx.STAY_ON_TOP? Kann sein, dass Du das willst, vielleicht aber auch nicht, weil das ein Parameter ist, der doch verhindern sollte, dass Du überhaupt nicht mehr das Hauptfenster nach vorne holen kannst. Das kann natürlich auch gewünscht sein, aber ich hatte die Frage anders interpretiert.

Gruß,
Christian

Verfasst: Dienstag 19. August 2008, 17:14
von sephos
Hallo,

nein mit Xisto hab ich nix zu tun, habe auch gerade mitbekommen das er eine ähnlich Anfrage stellt.

Das zweite Fenster wird bei mir aber automatisch geschlossen, sobald ein bestimmter Button gedrückt wurde, so das nur noch mein Hauptfenster offen ist.

Aber es läuft zum Glück so wie es sollte, vielen Dank für deine Bemühungen :wink: