Hi!
I am new to wxPython, and have some fun with it, but run into a problem, where I dont know if it is a bug or bad coded.
I try to build a wizard and have a CheckBox in it, nothing special I think.
It perfoms perfect under Ubuntu 20.04LTS w/ Python 3.8.2 and wxPython4.1, but
if I start the same code on my Windows 10 w/ Python 3.7.7 or 3.8.5 also with a wxPython4.1 the Checkbox is not “checkable” I cant click it to “activate” it like on the Linux Machine
I think I do nothing special:
Getting a Sizer, building the checkbox, bind the event…
Any clues for me?
Well I admit, I got the code somewhere so its not “my beauty” but it works and its only for “playing around” with wizards
Cheers
Matthias
import wx
from wx.adv import Wizard,WizardPage
class MyWizardPage(WizardPage):
""" Hier erstellen wir die Seitenverlinkung und Events """
def __init__(self, parent, title):
""" Wir erben unseren eigenen Init ran"""
WizardPage.__init__(self,parent)
self.next = None # Damit es deklariert ist
self.prev = None # Dito
self.initializeUI(title)
def initializeUI(self,title):
# Default-Raster erstellen
self.sizer = wx.GridBagSizer()
self.SetSizer(self.sizer)
def addWidget(self, widget, pos, span):
self.sizer.Add(widget, pos, span, wx.EXPAND)
def SetPrev(self,prev):
self.prev = prev
def SetNext(self,next):
self.next = next
def GetPrev(self):
return self.prev
def GetNext(self):
return self.next
class MyWizard(Wizard):
""""""
def __init__(self):
""" Constructor """
Wizard.__init__(self,None,title="Grundeinstellungen")
#groesse setzen
self.SetPageSize((500,300))
seite1 = self.create_seiten()
forward_btn = self.FindWindowById(wx.ID_FORWARD)
forward_btn.Disable()
#self.timer = wx.Timer(self)
#self.Bind(wx.EVT_TIMER, self.onUpdate, self.timer)
#self.timer.Start(1)
self.RunWizard(seite1)
def create_seiten(self):
seite1 = MyWizardPage(self,"Seite1")
#Seite 1
seite1.SetName("Introseite")
#Statischer Text
#wiz_01_p01_st_01 = wx.StaticText(seite1,label=params['WizIntroText'])
#wiz_01_p01_st_01 = wx.StaticText(seite1,label="lalal")
#seite1.addWidget(wiz_01_p01_st_01,(1,1),(2,1))
#self.text2 = wx.TextCtrl(seite1)
#seite1.addWidget(self.text2, (4,1), (1,5))
wiz_01_chkb_01 = wx.CheckBox(self,wx.ID_ANY,"Ja, habe ich gelesen!",style=wx.CHK_2STATE)
seite1.addWidget(wiz_01_chkb_01,(1,2),(2,2))
# Seite2
seite2 = MyWizardPage(self,"Servername(n)")
seite2.SetName("Servername")
self.text3 = wx.TextCtrl(seite2)
#self.Bind(wx.adv.EVT_WIZARD_PAGE_CHANGED, self.onPageChanged)
#Seite 3
seite3 = MyWizardPage(self,"Services")
seite2.SetPrev(seite1)
seite1.SetNext(seite2)
seite3.SetPrev(seite2)
seite2.SetNext(seite3)
# BINDS
self.Bind(wx.EVT_CHECKBOX, self.on_WizCb_klick, wiz_01_chkb_01)
return seite1
def on_WizCb_klick(self, event): # wxGlade: MyDialog.<event_handler>
print("Event handler 'on_WizCb_klick' not implemented!")
event.Skip()
def main():
wizzy = MyWizard()
if __name__ == "__main__":
app = wx.App(False)
main()
app.MainLoop()
app.ExitMainLoop()
app.Destroy()