Common Dialogs
wxPhoenix
|
1#
wxPhoenix 发表于 2007-04-12 19:09
Common Dialogsimport wx import wx.lib.wordwrap as wordwrap import os class Frame(wx.Frame): def __init__( self, parent, id=-1, title='Common Dialogs', pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE ): wx.Frame.__init__(self, parent, id, title, pos, size, style) Panel = wx.Panel(self, -1) MenuBar = wx.MenuBar() FileMenu = wx.Menu() MenuItem = FileMenu.Append(-1, 'Exit') self.Bind(wx.EVT_MENU, self.OnExit, MenuItem) MenuBar.Append(FileMenu, '&File') TestMenu = wx.Menu() MenuItem = TestMenu.Append(-1, 'AboutBox') self.Bind(wx.EVT_MENU, self.OnAboutBox, MenuItem) MenuItem = TestMenu.Append(-1, 'ColourDialog') self.Bind(wx.EVT_MENU, self.OnColourDialog, MenuItem) MenuItem = TestMenu.Append(-1, 'DirDialog') self.Bind(wx.EVT_MENU, self.OnDirDialog, MenuItem) MenuItem = TestMenu.Append(-1, 'FileDialog') self.Bind(wx.EVT_MENU, self.OnFileDialog, MenuItem) MenuItem = TestMenu.Append(-1, 'FindReplaceDialog') self.Bind(wx.EVT_MENU, self.OnFindReplaceDialog, MenuItem) MenuItem = TestMenu.Append(-1, 'FontDialog') self.Bind(wx.EVT_MENU, self.OnFontDialog, MenuItem) MenuItem = TestMenu.Append(-1, 'MessageDialog') self.Bind(wx.EVT_MENU, self.OnMessageDialog, MenuItem) MenuItem = TestMenu.Append(-1, 'MultiChoiceDialog') self.Bind(wx.EVT_MENU, self.OnMultiChoiceDialog, MenuItem) MenuItem = TestMenu.Append(-1, 'PageSetupDialog') self.Bind(wx.EVT_MENU, self.OnPageSetupDialog, MenuItem) MenuItem = TestMenu.Append(-1, 'PrintDialog') self.Bind(wx.EVT_MENU, self.OnPrintDialog, MenuItem) MenuItem = TestMenu.Append(-1, 'ProgressDialog') self.Bind(wx.EVT_MENU, self.OnProgressDialog, MenuItem) MenuItem = TestMenu.Append(-1, 'SingleChoiceDialog') self.Bind(wx.EVT_MENU, self.OnSingleChoiceDialog, MenuItem) MenuItem = TestMenu.Append(-1, 'TextEntryDialog') self.Bind(wx.EVT_MENU, self.OnTextEntryDialog, MenuItem) MenuBar.Append(TestMenu, '&Test') self.SetMenuBar(MenuBar) def OnExit(self, event): self.Close() def OnAboutBox(self, event): AboutInfo = wx.AboutDialogInfo() AboutInfo.Name = 'Common Dialogs' AboutInfo.Version = '2.8.0.1' AboutInfo.Copyright = '(C) 2007 Coders Everywhere' AboutInfo.Description = wordwrap.wordwrap( 'This is demo of wxPython\'s Common Dialogs which I entitled ' 'ShowBox. You can apply them in the pratical development to ' 'move quickly.\n\n' 'You can select Test-Menu to try Boxitem what ShowBox includes.', 350, wx.ClientDC(self)) AboutInfo.WebSite = ('http://www.wxpython.org', 'wxPython Home Page') AboutInfo.License = wordwrap.wordwrap('cool huh? '*6, 500, wx.ClientDC(self)) AboutInfo.Developers = ['Shaka LCF', 'wxPhoenix'] AboutInfo.DocWriters = ['XiaoJun', 'AXiang', 'LaoGu'] AboutInfo.Artists = ['XueGe', 'SinSin', 'XiaoYi', 'LaoKong'] wx.AboutBox(AboutInfo) def OnColourDialog(self, event): ColorDlg = wx.ColourDialog(self) if ColorDlg.ShowModal() == wx.ID_OK: ColorData = ColorDlg.GetColourData() wx.MessageBox('Colour Tuple: %s' % str(ColorData.GetColour().Get()), 'Prompt') def OnDirDialog(self, event): DirDialog = wx.DirDialog(parent=self, message='Select a directory', defaultPath=os.getcwd(), style=wx.DD_DEFAULT_STYLE|wx.DD_NEW_DIR_BUTTON) if DirDialog.ShowModal() == wx.ID_OK: wx.MessageBox('You selected: %s' % DirDialog.GetPath(), 'Prompt') def OnFileDialog(self, event): FileDialog = wx.FileDialog(parent=self, message='Choose a file', defaultDir=os.getcwd(), defaultFile='', wildcard='Python source(*.py)|*.py', style=wx.OPEN | wx.MULTIPLE | wx.CHANGE_DIR ) if FileDialog.ShowModal() == wx.ID_OK: PathList = FileDialog.GetPaths() Paths = '' for Path in PathList: Paths += Path + '\n' wx.MessageBox('You selected %d files:\n\n%s' % (len(PathList), Paths), 'Prompt') def OnFindReplaceDialog(self, event): pass def OnFontDialog(self, event): pass def OnMessageDialog(self, event): MessageDialog = wx.MessageDialog(self, 'This is demo of Common Dialogs', 'Prompt', wx.OK | wx.ICON_INFORMATION # wx.YES_NO | wx.NO_DEFAULT | wx.CANCEL | wx.ICON_INFORMATION ) MessageDialog = MessageDialog.ShowModal() def OnMultiChoiceDialog(self, event): Languages = ['C', 'C++', 'Python', 'Java', 'C#', 'Perl', 'Ruby', 'PHP', 'JavaScript'] MultiChoiceDialog = wx.MultiChoiceDialog(self, 'Choose you favourite language(s)', 'Popular Languages:', Languages) if MultiChoiceDialog.ShowModal() == wx.ID_OK: Indexs = MultiChoiceDialog.GetSelections() Choices = [Languages[index] for index in Indexs ] wx.MessageBox('Your favourite language(s):\n\n%s' % '\n'.join(Choices), 'Prompt') def OnPageSetupDialog(self, event): pass def OnPrintDialog(self, event): pass def OnProgressDialog(self, event): Max = 100 ProgressDialog = wx.ProgressDialog(title='Execute Progress', message='Waiting...', maximum=Max, parent=self, style=wx.PD_CAN_ABORT | wx.PD_APP_MODAL | wx.PD_ELAPSED_TIME | wx.PD_REMAINING_TIME ) Continue, Count= True, 0 while Continue and Count = Max / 2: Continue, Skip = ProgressDialog.Update(Count, 'Half-Time! A moment left!') else: Continue, Skip = ProgressDialog.Update(Count) def OnSingleChoiceDialog(self, event): SingleChoiceDialog = wx.SingleChoiceDialog( self, 'Languages', 'Choose you favourite language', ['C/C++', 'Python', 'Java', 'C#', 'Perl', 'PHP'], wx.CHOICEDLG_STYLE) if SingleChoiceDialog.ShowModal() == wx.ID_OK: wx.MessageBox('Your favourite language is %s' % SingleChoiceDialog.GetStringSelection(), 'Prompt') def OnTextEntryDialog(self, event): TextEntryDialog = wx.TextEntryDialog(parent=self, message='What is your favourite programming language?', caption='Enter some text', defaultValue='Python') if TextEntryDialog.ShowModal() == wx.ID_OK: wx.MessageBox('You enter: %s' % TextEntryDialog.GetValue(), 'Prompt') def TestFrame(): app = wx.PySimpleApp() frame = Frame(parent=None) frame.Centre() frame.Show() app.MainLoop() if __name__ == '__main__': TestFrame() |