wxglade-anlaufschwierigkeiten

Plattformunabhängige GUIs mit wxWidgets.
Antworten
sechsrad
User
Beiträge: 173
Registriert: Montag 31. März 2008, 17:09

Sonntag 4. Mai 2008, 17:45

hallo, ich habe diesen wx-gladebutton erstellt mit dem programm wxglade:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
# generated by wxGlade 0.6.3 on Sun May 04 18:36:02 2008

import sys, os, os.path, wx, time

# begin wxGlade: extracode
# end wxGlade



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()
        # 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, 0, 0)
        self.SetSizer(sizer_1)
        sizer_1.Fit(self)
        self.Layout()
        # end wxGlade

    def button_1(self,evt): 
        global v
        a=8
        print a

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__":
    app = MyApp(0)
    app.MainLoop()

dieses habe ich als test von hand eingebaut um den button zu testen :

Code: Alles auswählen

def button_1(self,evt): 
        global a
        a=8
        print a
aber es wird keine ausgabe geprintet wenn ich auf dem button drücke.

mfg
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Sonntag 4. Mai 2008, 18:17

a) Die Referenz auf deinen Button (self.button_1) darf nicht gleich heißen wie deine Funktion.
b) Du musst deinen Button über das Event System mit der Handlerfunktion verbinden. (http://www.zetcode.com/wxpython/events/)

mfg apollo13
sechsrad
User
Beiträge: 173
Registriert: Montag 31. März 2008, 17:09

Sonntag 4. Mai 2008, 19:42

danke, das war es.
jetzt funktioniert das programm.

man braucht die mit wx-glade erstellte wx-oberfläche(wxg) nicht besonderlich gross verändern. wird sauber und übersichtlich mit dem codegenerator umgewandelt in eine "py".

mfg
Antworten