wxPython中如何清空下拉菜单(选项菜单)的内容。谢谢。

Ace_wgk 2011-04-05 08:38:22
刚开始学python但是没有时间细细研究,就开始用wxPython写界面,只好急匆匆来论坛求助,希望大侠能帮帮我,谢谢,真的感激!
我想在界面上点击“重置”按钮后,界面上五个选项卡(下拉菜单式)的内容能够重置(也就是清空,以便再次选择上新内容),但是不知道能不能用Clear(),或者给我提供个别的方法,或是提供个类似清空选项卡的例子。谢谢!
我代码如下:

import wx
class InFrame(wx.Frame):

def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, '人机交互检索界面',
size=(800, 600))
panel = wx.Panel(self)

center = wx.StaticText(panel, -1, "常见赤潮藻藻种检索系统软件", (300, 25),
(160, -1), wx.ALIGN_CENTER)
center.SetForegroundColour('blue')
center = wx.StaticText(panel, -1,"检索结果:",(400,70),
(160,-1),wx.ALIGN_CENTER)
center.SetForegroundColour('black')

#生成下拉菜单选项
sampleList = ['不确定','单细胞', '群体',]
wx.StaticText(panel, -1, "生活形态:", (15, 70))
wx.Choice(panel, -1, (90, 68), choices=sampleList,name="LifeStyle")

sampleList = ['不确定','小', '较大','大',]
wx.StaticText(panel, -1, "细胞大小:", (15, 120))
wx.Choice(panel, -1, (90, 118), choices=sampleList,name="size")

sampleList = ['不确定','新月形', '二叉形',]
wx.StaticText(panel, -1, "细胞形态:", (15, 170))
wx.Choice(panel, -1, (90, 168), choices=sampleList,name="CellsForm")

sampleList = ['不确定', '棕黄色','黄褐色','黄绿色',]
wx.StaticText(panel, -1, "色素体颜色:", (15, 220))
wx.Choice(panel, -1, (90, 218), choices=sampleList,name="colour")

sampleList = ['不确定', '光滑','布满小刺', '前端具钩状突起',]
wx.StaticText(panel, -1, "细胞外特征:", (15, 270))
wx.Choice(panel, -1, (90, 268), choices=sampleList,name="character")

#生成“重置”“检索”按钮,并绑定鼠标单击事件,但我不知道绑定是否正确。
self.resetButton = wx.Button(panel, label="重置", pos=(13,320),
size=(60,30))
self.resetButton.Bind(wx.EVT_BUTTON, self.OnClearMe)
self.resetButton.Bind(wx.EVT_CHOICE, self.OnReset)

self.findButton = wx.Button(panel, label="检索", pos=(93, 320),
size=(60,30))
self.findButton.Bind(wx.EVT_BUTTON, self.OnFindMe)
self.findButton.Bind(wx.EVT_CHOICE, self.OnFind)

#生成“退出”按钮并绑定单击事件,形成事件。
self.button = wx.Button(panel, label="退出", pos=(715, 523),
size=(60,30))

self.Bind(wx.EVT_BUTTON, self.OnCloseMe, self.button)

self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
#下面是我的问题所在。
def OnClearMe(self,event):
self.Clear()#这地方程序我不会写,这样写显然不对。
def OnReset(self,event):
self.Clear()#这地方我不会写。

def OnFind(self,event):
self.Clear()#这地方我不会写,为了您能运行程序不影响其他界面按钮,
#我暂时随便用Clear()充数。
def OnFindMe(self,event):
self.Clear()#这地方我不会写,为了您能运行程序不影响其他界面按钮,
#我暂时随便用Clear()充数。
def OnCloseMe(self, event):
self.Close(True)
def OnCloseWindow(self, event):
self.Destroy()
event.Skip()

if __name__ == '__main__':
app = wx.PySimpleApp()
frame = InFrame(parent=None, id=-1)
frame.Show()
app.MainLoop()

...全文
262 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ace_wgk 2011-04-05
  • 打赏
  • 举报
回复
已有高手解答,谢谢大家。
Ace_wgk 2011-04-05
  • 打赏
  • 举报
回复
嗯,感谢您的回复,但是我不会调用啊,您看到我的代码中我说明我不会写的部分了吗?我写上后老是报错啊,您能给我示例一下吗?看我贴的代码那地方,帮我写一条示例一下,谢谢了![Quote=引用 1 楼 angel_su 的回复:]
看看http://wxpython.org/docs/api/wx.ItemContainer-class.html

要整个清掉下拉菜单选项用Clear(),重建用SetItems(sampleList)。如果只是要清掉本文框那个选好的项目就SetSelection(wx.NOT_FOUND)。另外用个属性self.xxx记住每个wx.Choice这样才好操作...
[/Quote]
angel_su 2011-04-05
  • 打赏
  • 举报
回复
看看http://wxpython.org/docs/api/wx.ItemContainer-class.html

要整个清掉下拉菜单选项用Clear(),重建用SetItems(sampleList)。如果只是要清掉本文框那个选好的项目就SetSelection(wx.NOT_FOUND)。另外用个属性self.xxx记住每个wx.Choice这样才好操作...

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧