1.对话框
①简单消息框
MessageDialog
②文件对话本框
FileDialog
③字体对话框
FontDialog
④颜色对话框
ColorDialog
2.简单消息框
①创建打开消息框的菜单项
self.menu4=wx.Menu()
self.menuMessage=self.menu4.Append(401,'Message')
self.menuBar1.Append(self.menu4, '&Message')
#打开消息对话框
#wx.EvtHandler.Bind(self,wx.EVT_MENU,self.OnMessage,401)
wx.EVT_MENU(self,401,self.OnMessage) #self.Bind(wx.EVT_MENU(self,401,self.OnMessage),self.OnMessage)
②绑定函数
def OnMessage(self,event):
dlg=wx.MessageDialog(self,"Hello",'Caution',wx.CANCEL|wx.OK|wx.ICON_ERROR)
if dlg.ShowModal()==wx.ID_OK:
print('Ok')
dlg.Destroy()
③运行结果
3.文件对话框
①创建打开文件对话框的菜单项
#创建文件操作菜单
self.menu1=wx.Menu()
self.menuOpen=self.menu1.Append(101,'Open')
self.menuSave=self.menu1.Append(102,'Save')
self.menuSaveAs=self.menu1.Append(103,'SaveAs')
#间隔符
self.menu1.AppendSeparator()
self.menuClose=self.menu1.Append(104,'Close')
self.menuBar1.Append(self.menu1, '&File')
#打开文件
#self.Bind(wx.EVT_MENU,self.OnOpen)
wx.EVT_MENU(self,101,self.OnOpen)
#保存文件
wx.EVT_MENU(self,102,self.OnSave)
#self.Bind(wx.EVT_MENU,self.OnSave)
#设置保存格式
wx.EVT_MENU(self,103,self.OnSaveAs)
②绑定文件操作函数
#文件框处理
def OnOpen(self,event):
file_wildcard="Python files(*.py)|*.py|All files(*.*)|*.*"
dlg=wx.FileDialog(self,"Open file",os.getcwd(),style=wx.FD_OPEN,wildcard=file_wildcard)
if dlg.ShowModal()==wx.ID_OK:
self.filename=dlg.GetPath()
self.SetTitle(self.Title+'-----'+self.filename)
dlg.Destroy()
def OnSave(self,event):
if not self.filename:
self.OnSaveAs(event)
else:
self.SaveFile()
def SaveFile(self):
if self.filename:
f=open(self.filename,'w')
f.close()
def OnSaveAs(self,event):
file_wildcard="Python files(*.py)|*.py|All files(*.*)|*.*"
dlg=wx.FileDialog(self,"Save file as...",os.getcwd(),style=wx.FD_SAVE|wx.FD_OVERWRITE_PROMPT,wildcard=file_wildcard)
if dlg.ShowModal()==wx.ID_OK:
filename=dlg.GetPath()
if not os.path.splitext(filename)[1]:
filename=filename+".py"
self.filename=filename
self.SaveFile()
self.SetTitle(self.Title+'------'+self.filename)
dlg.Destroy()
#def OnClose(self,event):
③运行结果
4.颜色对话框
①创建打开颜色对话框的菜单项
扫描二维码关注公众号,回复:
10072763 查看本文章
self.menu2=wx.Menu()
self.menuColor=self.menu2.Append(201,'Color')
self.menuBar1.Append(self.menu2, '&Color')
#打开颜色对话框
wx.EVT_MENU(self,201,self.OnOpenColor)
②绑定操作函数
#颜色框
def OnOpenColor(self,event):
cd=wx.ColourDialog(self)
if cd.ShowModal()==wx.ID_OK:
print('OK')
cd.Destroy()
③运行结果
5.字体对话框
①创建打开字体对话框的菜单项
#front
self.menu3=wx.Menu()
self.menuFront=self.menu3.Append(301,'Front')
self.menuBar1.Append(self.menu3, '&Front')
#打开字体对话框
#self.Bind(wx.EVT_MENU,self.OpenFront)
wx.EVT_MENU(self,301,self.OpenFront)
#wx.EvtHandler.Bind(self,self.menuFront,self.OpenFront)
②绑定操作函数
#文字框
def OpenFront(self,event):
fd = wx.FontDialog(self)
if fd.ShowModal() == wx.ID_OK:
print('OK')
fd.Destroy()
③运行结果
6.主函数
if __name__=='__main__':
print(help(wx.EvtHandler.Bind))
app=wx.App()
frame=myFrame(None)
frame.Show()
app.MainLoop()
学习笔记
1.在添加对话框时需要初始化;
2.文件对话框初始化需要通过os,getcwd()获取当前路径;
3.在初始化对话框后需要通过判断来使得对话框可视化:
if dlg.ShowModal()==wx.ID_OK:
4.在使用完对话框后需要销毁:
dlg.Destroy()