Seite 1 von 1

Neuling fragt

Verfasst: Mittwoch 26. Oktober 2005, 12:06
von cime
ich hab ein kleines Porblem, bei einem Tutorial hab ich dieses Programm gefunden (n bisel zusammengebastelt) ... ich versteh aber die ausgabe nicht ... wieso habe ich nur einen Button, obwohl ich in dem markiertem Bereich doch fünf hingeschrieben habe ...:

Code: Alles auswählen

from wxPython.wx import *

ID_ABOUT=101
ID_EXIT=102

class MyFrame(wxFrame):
    def __init__(self, parent, ID, title):
        wxFrame.__init__(self, parent, ID, title,
                         wxDefaultPosition, wxSize(200, 150))
        self.CreateStatusBar()
        self.SetStatusText("This is the statusbar")

        menu = wxMenu()
        menu.Append(ID_ABOUT, "&About",
                    "More information about this program")
        menu.AppendSeparator()
        menu.Append(ID_EXIT, "E&xit", "Terminate the program")

        menuBar = wxMenuBar()
        menuBar.Append(menu, "&File");

        self.SetMenuBar(menuBar)

        EVT_MENU(self, ID_ABOUT, self.OnAbout)
        EVT_MENU(self, ID_EXIT,  self.TimeToQuit)

    def OnAbout(self, event):
        dlg = wxMessageDialog(self, "This sample program shows off\n"
                              "frames, menus, statusbars, and this\n"
                              "message dialog.",
                              "About Me", wxOK | wxICON_INFORMATION)
        dlg.ShowModal()
        dlg.Destroy()


    def TimeToQuit(self, event):
        self.Close(true)



class MyApp(wxApp):
    def OnInit(self):
        frame = MyFrame(NULL, -1, "Hello from wxPython")
        frame.Show(true)
        self.SetTopWindow(frame)
        ##################markierter Bereich############################
        box = wxBoxSizer(wxHORIZONTAL)
        box.Add(wxButton(frame, 1010, "one"), 0)
        box.Add(wxButton(frame, 1011, "two"), 1)
        box.Add(wxButton(frame, 1012, "three"), 2)
        box.Add(wxButton(frame, 1013, "four"), 2)
        box.Add(wxButton(frame, 1014, "five"), 3)
        ################################################################
        return true

if __name__=='__main__':
    app = MyApp(0)
    app.MainLoop()

Verfasst: Mittwoch 26. Oktober 2005, 18:32
von CM
Hoi cime,

nun, zunächst einmal möchtest Du vielleicht eine neue wxPython-Version installieren? Eigentlich nämlich ist man bei Version 2.6 und schreibt "import wx".

Dann würde ich nicht raten irgendwelche Dinge in die MyApp-Klasse zu setzten, die da nicht hingehören, wie die Buttons ;-). Da gehören nur Dinge rein, die tatsächlich direkt in den MainLoop gehören, wie zum Beispiel ein SplashScrren oder so - aber nicht Dinge, die zum Layout gehören.

Und im Hauptframe - oder anderen Frames und Panels, wie es Dir beliebt - kannst Du Buttons setzten:

Code: Alles auswählen

Knopf1 = wx.Button(p,id,"Knopfbeschriftung")
#id ist eine id-Nummer, p z. B. ein Panel
Knopf1.SetSize(openpatternbutton.GetBestSize())
mysizer.Add(Knopf1)
self.Knopf1 = Knopf1
self.Bind(wx.EVT_BUTTON,self.Knopf1-Funktion, Knopf1)
Sollte funktioneren, aber vielleicht magst Du noch mal in die Demo schauen, was Du alles mit Buttons und Sizern machen kannst und wie das funktioniert.

Ansonsten, hier noch mal fragen.

Gruss,
Christian

Verfasst: Donnerstag 27. Oktober 2005, 09:43
von cime
CM hat geschrieben:Hoi cime,

nun, zunächst einmal möchtest Du vielleicht eine neue wxPython-Version installieren? Eigentlich nämlich ist man bei Version 2.6 und schreibt "import wx".
thx, hab ich, doch wie gsagt, es eher zusammenkopiert und dort war es schon so geschrieben (PS: hab 2.6)

CM hat geschrieben: Dann würde ich nicht raten irgendwelche Dinge in die MyApp-Klasse zu setzten, die da nicht hingehören, wie die Buttons ;-). Da gehören nur Dinge rein, die tatsächlich direkt in den MainLoop gehören, wie zum Beispiel ein SplashScrren oder so - aber nicht Dinge, die zum Layout gehören.

Und im Hauptframe - oder anderen Frames und Panels, wie es Dir beliebt - kannst Du Buttons setzten:
okay
CM hat geschrieben:

Code: Alles auswählen

Knopf1 = wx.Button(p,id,"Knopfbeschriftung")
#id ist eine id-Nummer, p z. B. ein Panel
Knopf1.SetSize(openpatternbutton.GetBestSize())
mysizer.Add(Knopf1)
self.Knopf1 = Knopf1
self.Bind(wx.EVT_BUTTON,self.Knopf1-Funktion, Knopf1)
Sollte funktioneren, aber vielleicht magst Du noch mal in die Demo schauen, was Du alles mit Buttons und Sizern machen kannst und wie das funktioniert.

Ansonsten, hier noch mal fragen.

Gruss,
Christian
ein riesenfettes Dankeschön, welche Demo meinst du denn ... oder kennt jemand noch ein schönes Tutorial, weil das, das ich benutze, ein wenig sehr veraltet ist (wie man gesehen hat) ...???

Verfasst: Donnerstag 27. Oktober 2005, 09:56
von Francesco
cime hat geschrieben: ein riesenfettes Dankeschön, welche Demo meinst du denn ... oder kennt jemand noch ein schönes Tutorial, weil das, das ich benutze, ein wenig sehr veraltet ist (wie man gesehen hat) ...???
Vielleicht mit wxPython Wiki Pages:

unter anderem:

http://wiki.wxpython.org/index.cgi/Getting_20Started
http://wiki.wxpython.org/index.cgi/CrashCourse

Bis du auf Windows?
Das Demo und die wxWidgets Hilfe ist extra zum herunterladen:

http://prdownloads.sourceforge.net/wxpy ... e?download

Verfasst: Donnerstag 27. Oktober 2005, 11:15
von cime
Daaaaaaaaaankeeeeeeeeeee