Ich bin neu bei Python. Ich erstelle gerade eine GUI mit 4 Optionen. Es bedeutet eine Frage und 4 Wahlmöglichkeiten. Benutzer wählen 1 Wahl und wenn auf OK klicken, wird es einen benutzerdefinierten Dialog zeigen und sagen Ihnen, ob Ihre Antwort richtig ist oder nichtWert der wx.Frame-Klasse an die wx.Dialog-Klasse in Python übergeben
import wx
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, "My Frame", size=(3000, 3000))
panel = wx.Panel(self,-1)
#panel.Bind(wx.EVT_MOTION, self.OnMove)
wx.StaticText(panel, -1, "What are the values of X", pos=(10, 12))
#self.posCtrl = wx.TextCtrl(panel, -1, "", pos=(100, 10))
self.option1 = wx.CheckBox(panel, -1, "Apples", (20,100), (160,-1))
wx.CheckBox(panel, -1, "Mango", (20,150), (160,-1))
wx.CheckBox(panel, -1, "Banana", (20,200), (160,-1))
wx.CheckBox(panel, -1, "Orange", (20,250), (160,-1))
button=wx.Button(panel,label="OK",pos=(800, 400), size = (50,50))
self.Bind(wx.EVT_BUTTON, self.newwindow, button)
# def OnMove(self, event):
# pos = event.GetPosition()
# self.posCtrl.SetValue("%s, %s" % (pos.x, pos.y))
def newwindow(self, event):
dia = MyDialog(None, -1, 'buttons')
dia.ShowModal()
dia.Destroy()
class MyDialog(wx.Dialog):
def __init__(self, parent, id, title):
wx.Dialog.__init__(self, parent, id, title, size=(350,300)
value = MyFrame.self.option1.GetValue()
print ("***** Value is" , value)
app = wx.App(False)
frame = MyFrame()
frame.Show(True)
app.MainLoop()
Ich erhalte den Fehler. Wie den Wert von checkBox erhalten, die durch den Benutzer ausgewählt wird und den gleichen Rückgabewert zu Dialog Klasse
Ein paar kurze Hinweise, um loszulegen: (1) Sie fehlen eine schließende Klammer in der Zeile, die mit 'wx.Dialog .__ init __...' in Ihrer 'MyDialog' Klasse beginnt; (2) 'Wert = MyFrame.self.option1.GetValue()' ist nicht gut. Sie möchten den Wert der instanziierten Klasse abrufen, die die globale Variable 'frame' ist. Probiere 'frame.option1.GetValue()' aus. – dpwilson