hallo, ich möchte diesen befehl anwenden in wxpython : spin.GetValue .
ich möchte den eingestellten wert im spin weiterverarbeiten.
finde keine lösung.
mfg
wo finde ich eine demo für spin.GetValue
Hallo,
nehmen wir an, Du hast ein SpinCtrl erzeugt:
Nun kannst Du mittels self.scAnzahl.GetValue() den Wert auslesen.
Gruß
Timo
nehmen wir an, Du hast ein SpinCtrl erzeugt:
Code: Alles auswählen
self.scAnzahl = wx.SpinCtrl(panel, -1, '', pos=(25,42), size=(60,30))
Code: Alles auswählen
wert = self.scAnzahl.GetValue()
Timo
ich habe ja dem spin ein event gegeben:
self.spin_ctrl_1 = wx.SpinCtrl(self, -1, "")
self.spin_ctrl_1.SetRange(0, 100)
self.spin_ctrl_1.SetValue(0)
self.Bind(wx.EVT_SPIN, self.printet, self.spin_ctrl_1)
aber beim anklicken zum hochzählen wird der wert nicht geprintet .woran liegt das?
self.spin_ctrl_1 = wx.SpinCtrl(self, -1, "")
self.spin_ctrl_1.SetRange(0, 100)
self.spin_ctrl_1.SetValue(0)
self.Bind(wx.EVT_SPIN, self.printet, self.spin_ctrl_1)
aber beim anklicken zum hochzählen wird der wert nicht geprintet .woran liegt das?
Code: Alles auswählen
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.spin_ctrl_1 = wx.SpinCtrl(self, -1, "")
self.spin_ctrl_1.SetRange(0, 100)
self.spin_ctrl_1.SetValue(0)
self.Bind(wx.EVT_SPIN, self.printet, self.spin_ctrl_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.spin_ctrl_1, 0, 0, 0)
self.SetSizer(sizer_1)
sizer_1.Fit(self)
self.Layout()
# end wxGlade
# end of class MyFrame
def printet(self, event):
global wert
wert = self.spin_ctrl_1.GetValue()
print wert
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()
weil Dein Event falsch ist
Falsch:
Richtig:
Falsch:
Code: Alles auswählen
self.Bind(wx.EVT_SPIN, self.printet, self.spin_ctrl_1)
Code: Alles auswählen
self.Bind(wx.EVT_SPINCTRL, self.printet, self.spin_ctrl_1)
jup, danke. das wars.
hatte dieses aus einem wxpython-demo:
und das andere mit wxglade angefertigt, da ist mir das garnicht aufgefallen das mit "wx.SpinButton" und "wx.SpinCtrl".
hatte dieses aus einem wxpython-demo:
Code: Alles auswählen
self.spin = wx.SpinButton(self, -1,
(w, 50),
(h*2/3, h),
wx.SP_VERTICAL)
self.spin.SetRange(1, 100)
self.spin.SetValue(1)
self.Bind(wx.EVT_SPIN, self.OnSpin, self.spin)
Wenn Du wxGlade benutzt, kannst Du in den Eigenschaften das Event einstellen Da passiert das nicht so schnell.und das andere mit wxglade angefertigt, da ist mir das garnicht aufgefallen das mit "wx.SpinButton" und "wx.SpinCtrl".
LG
Tim2611