def __init__(self, event_handler) : super(MainDialog, self).__init__(parent = None, id = wx.NewId(), size = (840, 570), title = APP_NAME) self.event_handler = event_handler self.event_handler.gui = self self.SetMinSize((840, 570)) self.SetSize((840, 570)) self.Centre() self._statusbar = self.CreateStatusBar(3) self._statusbar.SetStatusWidths([200, 500, 100]) menuBar = wx.MenuBar() menu1 = wx.Menu() menu1.Append(self.ID_SETTING, u"设置a&ccess_key", u"Setting the access_id and secret_access_key") menu1.Append(self.ID_SYNC_UP, u"上行同步(&U)", u"Sync the file to OSS.") menu1.Append(self.ID_SYNC_DOWN, u"下行同步(&D)", u"Sync the file to local folder.") menu1.Append(wx.ID_ABOUT, u"打开同步目录(&P)", u"Open the sync folder on Explorer") menu1.AppendSeparator() menu1.Append(wx.ID_ABOUT, u"&About", u"About the Application") menu1.Append(wx.ID_CLOSE, u"&Exit", u"Exit this Application") menuBar.Append(menu1, u"操作(&O)") menu2 = wx.Menu() menu2.Append(self.ID_VIEW_SYNC, u'同步(&T)', u'同步OSS文件到指定的文件夹', wx.ITEM_RADIO) #menu2.Append(self.ID_VIEW_MGR, u'管理(&M)', u'对OSS文件进行管理', wx.ITEM_RADIO) menu2.Append(self.ID_VIEW_BROWSE, u'浏览(&L)', u'浏览文件', wx.ITEM_RADIO) menuBar.Append(menu2, u"视图(&V)") self.SetMenuBar(menuBar) self.Bind(wx.EVT_MENU, lambda evt: wx.Exit(), id = wx.ID_CLOSE) logo = wx.StaticBitmap(self, -1, wx.Bitmap(os.path.join(CURRENT_PATH, 'logo_aliyun.png'), wx.BITMAP_TYPE_PNG)) self._splitter = wx.SplitterWindow(self, style = wx.SP_3D | wx.SP_BORDER | wx.SP_LIVE_UPDATE | wx.SP_3DSASH | wx.TAB_TRAVERSAL) self._splitter.SetMinimumPaneSize(210) # 左边bucket列表 left = wx.Panel(self._splitter, -1 , style = wx.TAB_TRAVERSAL) tbNewBucket = wx.Button(left, self.ID_NEW_BUCKET, u"创建存储空间", (10, 10), (100, 24)) self._tree = TreeView(left, (0, 40)) vbox = wx.BoxSizer(wx.VERTICAL) vbox.Add(tbNewBucket, 0, wx.EXPAND | wx.ALL, 5) vbox.Add(self._tree, 1, wx.EXPAND | wx.ALL, 0) left.SetSizer(vbox) # 右边文件列表 right = wx.Panel(self._splitter, -1 , style = wx.TAB_TRAVERSAL) self._bucket_info = BucketInfoPanel(right) self._list = FileList(right, wx.DefaultPosition, wx.DefaultSize) vbox = wx.BoxSizer(wx.VERTICAL) vbox.Add(self._bucket_info, 0, wx.EXPAND | wx.ALL, 0) vbox.Add(self._list, 1, wx.EXPAND | wx.ALL, 0) right.SetSizer(vbox) self._splitter.SplitVertically(left, right, 210) self.SetBackgroundColour('#FFFFFF') vbox = wx.BoxSizer(wx.VERTICAL) vbox.Add(logo, 0, wx.ALIGN_LEFT , 0) vbox.Add(self._splitter, 1, wx.EXPAND | wx.ALL, 0) self.SetSizer(vbox) self.SetAutoLayout(True) self.Fit() self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.on_bucket_selected, self._tree) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.on_object_activated, self._list) self.Bind(wx.EVT_MENU, self.on_view_clicked, id = self.ID_VIEW_MGR) self.Bind(wx.EVT_MENU, self.on_view_clicked, id = self.ID_VIEW_BROWSE) self.Bind(wx.EVT_MENU, self.on_view_clicked, id = self.ID_VIEW_SYNC) self.Bind(wx.EVT_MENU, self.init, id = self.ID_SETTING) self.Bind(wx.EVT_MENU, self.on_delete_bucket, id = TreeView.ID_DELETE_BUCKET) self.Bind(wx.EVT_BUTTON, self.on_create_bucket, id = self.ID_NEW_BUCKET) self.Bind(wx.EVT_MENU, self.on_head_object, id = FileList.ID_HEAD_OBJECT) self.Bind(wx.EVT_BUTTON, self.event_handler.on_button_sync_down, id = BucketInfoPanel.ID_SYNC_DOWN) self.Bind(wx.EVT_BUTTON, self.event_handler.on_button_sync_up, id = BucketInfoPanel.ID_SYNC_UP) self.set_view(self.ID_VIEW_SYNC)