1
我有3個控制在我的框架 -wxPython的回調
- 有從僱員表的僱員名列表的列表框。
- 接受新員工姓名的文本框
- 單擊時的命令按鈕將在employee表中插入一個新名稱。
要求:
一旦我按插入新行列表框後,提交按鈕應自動使用新的名稱刷新。
如何完成此任務?
我成功地能夠創建控件並綁定點擊事件並插入一行。但無法刷新列表框。
感謝您的幫助提前。
我有3個控制在我的框架 -wxPython的回調
要求:
一旦我按插入新行列表框後,提交按鈕應自動使用新的名稱刷新。
如何完成此任務?
我成功地能夠創建控件並綁定點擊事件並插入一行。但無法刷新列表框。
感謝您的幫助提前。
您應該使用ListBox的SetItems方法:
import wx
########################################################################
class MyPanel(wx.Panel):
""""""
#----------------------------------------------------------------------
def __init__(self, parent):
"""Constructor"""
wx.Panel.__init__(self, parent)
self.choices = ["George Lucas"]
self.lbox = wx.ListBox(self, choices=self.choices)
self.new_emp = wx.TextCtrl(self)
addBtn = wx.Button(self, label="Add Employee")
addBtn.Bind(wx.EVT_BUTTON, self.addEmployee)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.lbox, 0, wx.ALL|wx.EXPAND, 5)
sizer.Add(self.new_emp, 0, wx.ALL|wx.EXPAND, 5)
sizer.Add(addBtn, 0, wx.ALL, 5)
self.SetSizer(sizer)
#----------------------------------------------------------------------
def addEmployee(self, event):
""""""
emp = self.new_emp.GetValue()
self.choices.append(emp)
self.lbox.SetItems(self.choices)
self.new_emp.SetValue("")
########################################################################
class MainFrame(wx.Frame):
""""""
#----------------------------------------------------------------------
def __init__(self):
"""Constructor"""
wx.Frame.__init__(self, None, title="Employee")
panel = MyPanel(self)
self.Show()
#----------------------------------------------------------------------
if __name__ == "__main__":
app = wx.App(False)
frame = MainFrame()
app.MainLoop()
非常感謝.. – user1050619 2013-03-27 20:44:06