Seite 1 von 1

macht alles doppelt - ( immer noch )

Verfasst: Mittwoch 14. Februar 2007, 10:38
von rogen
morgen

normal benutze ich ubuntu .
ich wollte ein pythonprogramm mit wxpython ( ansi) unter windows xp testen
aber alles wir doppelt ausgeführt.

sogar wenn ich ein programm mit wxglade unter windows erstelle.

kann mir jemand sagen warum ?

hier mein test- code:

Code: Alles auswählen

#!/usr/bin/env python

# -*- coding: UTF-8 -*-

# generated by wxGlade 0.4.1 on Tue Feb 13 21:49:05 2007



import wx



class MyFrame(wx.Frame):

    def __init__(self, *args, **kwds):

        # begin wxGlade: MyFrame.__init__

        kwds["style"] = wx.DEFAULT_FRAME_STYLE

        wx.Frame.__init__(self, *args, **kwds)

        self.button_1 = wx.Button(self, -1, _("button_1"))



        self.__set_properties()

        self.__do_layout()



        self.Bind(wx.EVT_BUTTON, self.test, self.button_1)

        # end wxGlade



    def __set_properties(self):

        # begin wxGlade: MyFrame.__set_properties

        self.SetTitle(_("frame_1"))

        # end wxGlade



    def __do_layout(self):

        # begin wxGlade: MyFrame.__do_layout

        sizer_1 = wx.BoxSizer(wx.VERTICAL)

        sizer_1.Add(self.button_1, 0, wx.ADJUST_MINSIZE, 0)

        self.SetAutoLayout(True)

        self.SetSizer(sizer_1)

        sizer_1.Fit(self)

        sizer_1.SetSizeHints(self)

        self.Layout()

        # end wxGlade



    def test(self, event): # wxGlade: MyFrame.<event_handler>

        print "button wurde gedrueckt"

        event.Skip()



# end of class MyFrame





class MyApp(wx.App):

    def OnInit(self):

        wx.InitAllImageHandlers()

        frame_1 = MyFrame(None, -1, "")

        self.SetTopWindow(frame_1)

        frame_1.Show()

        return 1



# end of class MyApp



if __name__ == "__main__":

    import gettext

    gettext.install("app") # replace with the appropriate catalog name



    app = MyApp(0)

    app.MainLoop()
mfg

bin am verzweifeln

Re: macht alles doppelt - ( immer noch )

Verfasst: Mittwoch 14. Februar 2007, 12:51
von Francesco
Hallo, man sollte control nie direkt auf ein Frame setzen, sondern ein Panel verwenden.

Code: Alles auswählen

#!/usr/bin/env python

# -*- coding: UTF-8 -*-

# generated by wxGlade 0.4.1 on Tue Feb 13 21:49:05 2007



import wx



class MyFrame(wx.Frame):

    def __init__(self, *args, **kwds):

        # begin wxGlade: MyFrame.__init__

        kwds["style"] = wx.DEFAULT_FRAME_STYLE

        wx.Frame.__init__(self, *args, **kwds)


        self.p = wx.Panel(self)
        self.button_1 = wx.Button(self.p, -1, _("button_1"))


        self.__set_properties()

        self.__do_layout()
        self.p.SetSize (self.GetSize())



        self.Bind(wx.EVT_BUTTON, self.test, self.button_1)

        # end wxGlade



    def __set_properties(self):

        # begin wxGlade: MyFrame.__set_properties

        self.SetTitle(_("frame_1"))

        # end wxGlade



    def __do_layout(self):
        # begin wxGlade: MyFrame.__do_layout

        sizer_1 = wx.BoxSizer(wx.VERTICAL)

        sizer_1.Add(self.button_1, 0, wx.ADJUST_MINSIZE, 0)

        self.SetAutoLayout(True)

        self.SetSizer(sizer_1)

        sizer_1.Fit(self.p)

        sizer_1.SetSizeHints(self.p)

        self.Layout()

        # end wxGlade



    def test(self, event): # wxGlade: MyFrame.<event_handler>

        print "button wurde gedrueckt"

        event.Skip()



# end of class MyFrame





class MyApp(wx.App):

    def OnInit(self):

        wx.InitAllImageHandlers()

        frame_1 = MyFrame(None, -1, "")

        self.SetTopWindow(frame_1)

        frame_1.Show()

        return 1



# end of class MyApp



if __name__ == "__main__":

    import gettext

    gettext.install("app") # replace with the appropriate catalog name



    app = MyApp(0)

    app.MainLoop()

danke

Verfasst: Mittwoch 14. Februar 2007, 16:13
von rogen
danke
so funktionierts.

mfg
gerhard rogen