1
由於某種原因,我無法更新第二個標籤。我通過詢問輸入並打印出字符串來測試它,並且它工作正常,所以我顯然沒有正確書寫標籤更新功能。有任何想法嗎?爲什麼我的第二個標籤沒有更新?
import wx
import time
class LeftPanel(wx.Panel):
def __init__(self, parent, id):
wx.Panel.__init__(self, parent, id, style=wx.BORDER_SUNKEN)
self.text = parent.GetParent().rightPanel.text
self.text_2 = parent.GetParent().rightPanel.text_2
button1 = wx.Button(self, -1, 'Count', (10, 10))
button2 = wx.Button(self, -1, 'Countdown', (10, 60))
button3 = wx.Button(self, -1, 'Action', (10, 110))
self.Bind(wx.EVT_BUTTON, self.OnPlus, id=button1.GetId())
self.Bind(wx.EVT_BUTTON, self.OnMinus, id=button2.GetId())
self.Bind(wx.EVT_BUTTON, self.button_Pressed, id=button3.GetId())
self.timed_Out = 1
def OnPlus(self, event):
value = 1
for t in range(50):
value = value + 1
time.sleep(1)
wx.Yield()
self.text.SetLabel(str(value))
def OnMinus(self, event):
value = 60
for t in range(value):
value = value - 1
time.sleep(1)
wx.Yield()
self.text.SetLabel(str(value/60) + ':' + str(value%60))
self.timed_Out = 0
self.text_2.SetLabel(str('End o\'line.'))
def button_Pressed(self, event):
if self.timed_Out == 1:
if self.text_2 == 'First':
self.text_2.SetLabel('Second')
elif self.text_2 == 'Second':
self.text_2.SetLabel('First')
class RightPanel(wx.Panel):
def __init__(self, parent, id):
wx.Panel.__init__(self, parent, id, style=wx.BORDER_SUNKEN)
self.text = wx.StaticText(self, -1, '0', (10,60))
self.text_2 = wx.StaticText(self,-1,'First',(10, 120))
class Communicate(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title, size=(600, 200))
panel = wx.Panel(self, -1)
self.rightPanel = RightPanel(panel, -1)
leftPanel = LeftPanel(panel, -1)
hbox = wx.BoxSizer()
hbox.Add(leftPanel, 1, wx.EXPAND | wx.ALL, 4)
hbox.Add(self.rightPanel, 1, wx.EXPAND | wx.ALL, 5)
panel.SetSizer(hbox)
self.Centre()
self.Show(True)
app = wx.App()
Communicate(None, -1, 'widgets communicate')
app.MainLoop()
好的......我只嘗試了Get()方法lastnight(這是我唯一知道的Get方法)。我認爲self.text_2會像其他賦予值的變量一樣處理。 a = 2如果a == 2:print(a)多謝先生或女士。 :) – JoryRFerrell 2012-02-05 18:16:09
@JoryRFerrell這是wx API可以變得更加直觀的東西之一,但事實並非如此。不幸的是,這是圍繞C API的python包裝的典型代表。 – adriaticc 2012-02-06 04:37:56