2012-04-03 8 views
0

Ich habe eine Python-Anwendung, die WxPython für eine GUI verwendet. Es läuft gut auf einem Windows XP-Rechner, aber ich muss auf meinem Mac daran arbeiten.WxPython-Anwendung in OSX vollständig unsichtbar

Auf OSX läuft main.py, und es öffnet sich ein Fenster namens "Python" (und hält den Prozess im Terminal ab). Aber wo in XP das Python-Fenster die GUI hat, ist die OSX-Version völlig unsichtbar. Nichts zeigt sich überhaupt (aber die Anwendung ist definitiv offen. Hitting geben Sie in das "unsichtbare Fenster" verursacht die erwartete Antwort im Terminal)

Was muss ich hinzufügen/ändern, damit alles tatsächlich auf OSX angezeigt wird? Der Fenster-Init-Code scheint mit Ausnahme der angegebenen Schriftart ('MS Shell Dig 2') ohne Betriebssystem zu sein.

+1

Haben Sie versucht, Ihre Tests auf einfachere Schritte brechen? Versuchen Sie zunächst, ein leeres Fenster (5 Zeilen Code) anzuzeigen, um die Ergebnisse zu überprüfen, und fügen Sie weitere hinzu, bis Sie herausfinden, was nicht funktioniert. Ich denke nicht, dass irgendjemand eine solide Antwort haben wird, kurz bevor er seinen Code überprüft und testet (was die Leute wahrscheinlich nicht über ein Test-Snippet hinaus tun werden). wx sollte OS-agnostisch sein. – jdi

Antwort

1

Haben Sie eine wx.Panel als Hauptkind Ihres Rahmens? Erstellen Sie ein einzelnes Panel in Ihrem Hauptrahmen und fügen Sie dem Panel statt des Rahmens selbst die restlichen Steuerelemente hinzu. Ich erinnere mich, dass Sie ähnliche Probleme hatten, die auf diese Weise gelöst wurden.

etwas schnell auf die Idee zu zeigen:

import wx 

class MainWindow(wx.Frame): 
    def __init__(self, *args, **kwargs): 
     wx.Frame.__init__(self, *args, **kwargs) 
     self.panel = wx.Panel(self) 
     # Add other controls to the main panel, not the frame 
     self.text = wx.TextCtrl(self.panel) 
     self.Show() 

app = wx.App(False) 
win = MainWindow(None) 
app.MainLoop()