def install(self): downloadUrl: str = None for tag in get(self.app.repoApiUrl).json(): if tag['name'] == self.app.version: for asset in tag['assets']: if '.exe' in asset['name']: downloadUrl = asset['browser_download_url'] break break if not downloadUrl: wx.GenericMessageDialog( parent=self.app.root, message="Can't find the version specified", caption='Error', style=None, ).ShowModal() wx.CallAfter(self.app.root.Destroy) return request = get(downloadUrl, stream=True) # download BEE # working variables zipdata = io.BytesIO() dl = 0 total_length = int(request.headers.get('content-length')) total_length_mb: int(total_length / 1024 / 1024) wx.CallAfter(self.app.root.progBar.SetRange, total_length) # download! for data in request.iter_content(chunk_size=1024): dl += len(data) zipdata.write(data) done = int(100 * dl / total_length) print(f'total: {total_length}, dl: {dl}, done: {done}') wx.CallAfter(self.app.root.progBar.SetValue, done) wx.CallAfter(self.app.root.megaText.SetLabel, f'Done: {done / 1024 / 1024 }/{total_length_mb}MB') wx.CallAfter(self.app.root.speedText.SetLabel, f'Speed: {len(data)}mbs') wx.CallAfter(self.app.root.progBar.Pulse) # read the data as bytes and then create the zipfile object from it if py7zr.is_7zfile(zipdata): wx.GenericMessageDialog( parent=self.app.root, message="The downloaded file wasn't a 7z file.", caption='Error', style=None, ).ShowModal() wx.CallAfter(self.app.root.Destroy) return tempdir = tempfile.mkdtemp(prefix='bridge-inst') py7zr.unpack_7zarchive(zipdata, tempdir) shutil.move(tempdir, self.app.installPath)
def serial_warn(): """Warning message dialog on invalid serial number input.""" warning_message = "Invalid serial!" warning = wx.GenericMessageDialog(None, warning_message, "Warning!", wx.OK, wx.DefaultPosition) warning.ShowModal() warning.Destroy()
def _dataloss_warn(self): warning_message = "Do you want to exit without saving data?" warning = wx.GenericMessageDialog(None, warning_message, "Warning!", wx.YES_NO, wx.DefaultPosition) result = warning.ShowModal() warning.Destroy() return result
def _overwrite_warn(self): warning_message = "Do you want to overwrite previous calibration?" warning = wx.GenericMessageDialog(None, warning_message, "Warning!", wx.YES_NO, wx.DefaultPosition) result = warning.ShowModal() warning.Destroy() return result
def range_warn(): """Warning message dialog on invalid angle range input.""" warning_message = "Invalid angle range!" warning = wx.GenericMessageDialog(None, warning_message, "Warning!", wx.OK, wx.DefaultPosition) warning.ShowModal() warning.Destroy()
def zero_warn(): """Warning message dialog if optical power meter is not zeroed.""" warning_message = "Power meter not zeroed!" warning = wx.GenericMessageDialog(None, warning_message, "Warning!", wx.OK, wx.DefaultPosition) warning.ShowModal() warning.Destroy()
def step_warn(): """Warning message dialog box if the step size is 0.""" warning_message = "Step size cannot be 0!" warning = wx.GenericMessageDialog(None, warning_message, "Warning!", wx.OK, wx.DefaultPosition) warning.ShowModal() warning.Destroy()
def notImplementedYet(): """ shows a dialog that says that this feature its not implemented """ wx.GenericMessageDialog(parent=wx.GetActiveWindow(), message=loc('popup.notimplemented.text'), caption=loc('popup.notimplemented.title'), style=wx.ICON_INFORMATION | wx.STAY_ON_TOP | wx.OK).ShowModal()
def installBee(self, evt: wx.CommandEvent): """ called when the install bee button is pressed :param evt: placeholder """ # check if is installed if beeManager.beeIsPresent() and beeManager.packagesAreInstalled(): wx.GenericMessageDialog( self, message='BEE2.4 has been found on default install path!\nNo need to install again :D', caption='Notice!', style=wx.OK | wx.STAY_ON_TOP | wx.CENTRE ).ShowModal() config.save(f'{utilities.defBeePath}/BEE2/', 'beePath') elif beeManager.beeIsPresent() and not beeManager.packagesAreInstalled(): wx.GenericMessageDialog( self, message='BEE2.4 has been found on default install path, but not the packages.\nThe packages will be downloaded', caption='Notice!', style=wx.OK | wx.STAY_ON_TOP | wx.CENTRE ).ShowModal() config.save( f'{utilities.defBeePath}/BEE2/', 'beePath' ) beeManager.installDefPackages() else: # not installed dial = wx.DirDialog( self, message='Select where to install BEE (a BEE2 folder will be created)', # this gets the APPDATA path, go from Roaming to Local and then return the Programs folder full path defaultPath=utilities.defBeePath ) # show the dialog and wait if dial.ShowModal() == wx.ID_CANCEL: return # don't want to install anymore path = Path(dial.GetPath() + '/BEE2/') # create the missing folders if not path.exists(): path.mkdir() # save the BEE path config.save(str(path.resolve()).replace(r'\\', '/'), 'beePath') # install BEE without messages beeManager.checkAndInstallUpdate(True) self.portalMenu.Enable(9, True) self.portalMenu.Enable(10, False) self.fileMenu.Enable(1, True)
def test_gmsgdlg3(self): dlg = wx.GenericMessageDialog(None, 'Message', 'Caption') dlg.SetExtendedMessage('extended') dlg.SetMessage('message') dlg.SetOKCancelLabels('okidoky', 'bye-bye') self.assertEqual(dlg.GetExtendedMessage(), 'extended') self.assertEqual(dlg.GetMessage(), 'message') self.assertEqual(dlg.GetOKLabel(), 'okidoky') self.assertEqual(dlg.GetCancelLabel(), 'bye-bye') dlg.Destroy()
def _yes_no(self, question): frame = wx.Frame(wx.GetApp().TopWindow) frame.Center() dlg = wx.GenericMessageDialog(frame, question, caption="Handprint!", style=wx.YES_NO | wx.ICON_QUESTION) clicked = dlg.ShowModal() dlg.Destroy() frame.Destroy() self._response = (clicked == wx.ID_YES) self._queue.put(True)
def _note(self, text): '''Displays a simple notice with a single OK button.''' frame = wx.Frame(wx.GetApp().TopWindow) frame.Center() dlg = wx.GenericMessageDialog(frame, text, caption="Handprint!", style=wx.OK | wx.ICON_INFORMATION) clicked = dlg.ShowModal() dlg.Destroy() frame.Destroy() self._queue.put(True)
def _ask_yes_no(self, question): '''Display a yes/no dialog.''' frame = self._current_frame() dlg = wx.GenericMessageDialog(frame, question, caption="Check It!", style=wx.YES_NO | wx.ICON_QUESTION) clicked = dlg.ShowModal() dlg.Destroy() frame.Destroy() self._response = (clicked == wx.ID_YES) self._queue.put(True)
def rundriver(self, event): csv = self.csv_file.GetValue() if csv == '': ermessages = wx.GenericMessageDialog( None, "配置文件不能为空", "错误提示", wx.YES_DEFAULT | wx.ICON_QUESTION) if ermessages.ShowModal() == wx.ID_YES: ermessages.Destroy() return 0 else: #执行驱动程序 runfileobj = driver_frame() runfileobj.runfile(self.configpath)
def guess_word(evt): global hidden_word global TRIES global ATTEMPTS_NUM letter = evt.GetEventObject().Label indices = [pos for pos, char in enumerate(picked_word) if char == letter] if len(indices) == 0: evt.GetEventObject().SetValue(False) TRIES = TRIES - 1 ATTEMPTS_NUM.SetLabel("Attempts left: " + str(TRIES)) if TRIES == 0: continueGame = wx.GenericMessageDialog( main_frame, "You dont have more tries! Start again?", "Game Over", wx.YES_NO).ShowModal() if continueGame == wx.ID_NO: exit() else: ATTEMPTS_NUM.SetLabel("Attempts left: 6") start_game() return else: evt.GetEventObject().Disable() disabled_btns.append(evt.GetEventObject()) w = list(hidden_word) for i in indices: w[i] = letter hidden_word = "".join(w) display_word(hidden_word) if hidden_word == picked_word: start_over = wx.GenericMessageDialog( main_frame, "Congratulations, you win! Start over?", "Win", wx.YES_NO).ShowModal() if start_over == wx.ID_NO: exit() else: ATTEMPTS_NUM.SetLabel("Attempts left: 6") start_game()
def _show_note(self, text, *args, severity='info'): '''Displays a simple notice with a single OK button.''' if __debug__: log('showing note dialog') frame = self._current_frame() icon = wx.ICON_WARNING if severity == 'warn' else wx.ICON_INFORMATION dlg = wx.GenericMessageDialog(frame, text.format(*args), caption="Check It!", style=wx.OK | icon) clicked = dlg.ShowModal() dlg.Destroy() frame.Destroy() self._queue.put(True)
def openprifile(self, event): dlg1 = wx.FileDialog(self, defaultFile="file_privkey.pem", message=u"选择要读取得公钥文件名:", defaultDir=fileDir, wildcard=wildcard2, style=wx.FD_OPEN | wx.FD_MULTIPLE) if dlg1.ShowModal() == wx.ID_OK: self.prifilename = dlg1.GetPath() #self.prifilename = 'file_privkey.pem' if os.path.exists(self.prifilename) == True: fo = open(self.prifilename) self.prikeyfiledata = fo.read() fo.close() self.spam = [] #count = 0 self.pubkeylist = list(self.prikeyfiledata) #for i in self.pubkeylist: for num, i in enumerate(self.pubkeylist): if num > 4: self.spam.append(i) #print(num) if num % 77 == 1: self.spam.append('\n') self.spam.append('\n') self.prikeyfiledata = ''.join(self.spam) #GenericMessageDialog (parent , message , caption ,style , pos ) dlg = wx.GenericMessageDialog(self, "", caption="私钥文件数据", style=wx.OK | wx.ICON_INFORMATION) dlg.SetMessage("Private Key: \n%s" % (self.prikeyfiledata)) dlg.ShowModal() print('私钥文件读取成功!') self.tc3.AppendText('\n私钥文件读取成功!') dlg.Destroy() # finally destroy it when finished. else: print('私钥文件不存在!') self.tc3.AppendText('\n私钥文件不存在!') dlg = wx.MessageDialog(self, u"私钥文件不存在!\n请重新生成私钥文件!", u"文件状态", wx.OK | wx.ICON_ERROR) dlg.ShowModal() # Shows it dlg.Destroy() # finally destroy it when finished.
async def appDateCheck(): """ Checks app updates """ if not utilities.isonline(): # if we're not online return false return False data = utilities.checkUpdate( 'https://github.com/ENDERZOMBI102/BEE-manipulator', config.version ) if data.url is None: if getattr(root, 'instance', False): wx.MessageBox( parent=root.instance, message='No updates found!', caption='BEE Manipulator' ) return data = wx.GenericMessageDialog( parent=getattr(root, 'instance', None), message=f'An update for the app is available, do you want to update now?\n\n{data.description}', caption=f'Update Available - new version: {data.version}', style=wx.YES_NO | wx.ICON_WARNING | wx.STAY_ON_TOP | wx.NO_DEFAULT ) if data.ShowModal() == wx.ID_NO: return # user don't want to update utilities.update()
def _invalid_lcvr_warn(self): warning_message = "Invalid LCVR Controller Address/Connection!" warning = wx.GenericMessageDialog(None, warning_message, "Warning!", wx.OK, wx.DefaultPosition) warning.ShowModal() warning.Destroy()
def test_gmsgdlg2(self): dlg = wx.GenericMessageDialog(self.frame, 'Message', 'Caption') dlg.Destroy()
def __init__(self, parent): self.thread_pool_executor = ThreadPoolExecutor(max_workers=1) self._zk_client = None # self._zk_client = KazooClient(hosts='10.128.62.34:2181,10.128.62.34:2182,10.128.62.34:2183') wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString, pos=wx.DefaultPosition, size=wx.Size(1029, 722), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL) self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize) self.messageDialog = wx.GenericMessageDialog(self, wx.EmptyString) self.messageDialog.SetOKLabel("OK") bSizer4 = wx.BoxSizer(wx.VERTICAL) self.m_splitter2 = wx.SplitterWindow(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.SP_3D) self.m_splitter2.Bind(wx.EVT_IDLE, self.m_splitter2OnIdle) self.m_panel3 = wx.Panel(self.m_splitter2, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) self.m_panel3.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW)) bSizer12 = wx.BoxSizer(wx.VERTICAL) self.m_splitter9 = wx.SplitterWindow(self.m_panel3, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.SP_3D) self.m_splitter9.Bind(wx.EVT_IDLE, self.m_splitter9OnIdle) self.m_splitter9.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW)) self.m_panel7 = wx.Panel(self.m_splitter9, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) self.m_panel7.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW)) bSizer17 = wx.BoxSizer(wx.HORIZONTAL) self.m_textCtrl8 = wx.TextCtrl(self.m_panel7, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(200, -1), 0) bSizer17.Add(self.m_textCtrl8, 1, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5) self.m_button3 = wx.Button(self.m_panel7, wx.ID_ANY, u"search", wx.DefaultPosition, wx.DefaultSize, 0) self.m_button3.Bind(wx.EVT_BUTTON, self.search) bSizer17.Add(self.m_button3, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5) self.m_panel7.SetSizer(bSizer17) self.m_panel7.Layout() bSizer17.Fit(self.m_panel7) self.m_panel8 = wx.Panel(self.m_splitter9, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) self.m_panel8.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW)) bSizer20 = self.bSizer20 = wx.BoxSizer(wx.VERTICAL) self.loading_animation = wx.adv.Animation() self.loading_animation.LoadFile(resource_path("loading.gif")) self.animation_ctrl = wx.adv.AnimationCtrl(self.m_panel8, wx.ID_ANY, anim=wx.adv.NullAnimation, size=(20, 20), pos=wx.DefaultPosition) self.bSizer20.Add(self.animation_ctrl, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_CENTER_HORIZONTAL, 5) self.m_treeCtrl7 = wx.TreeCtrl(self.m_panel8, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, style=wx.TR_DEFAULT_STYLE) bSizer20.Add(self.m_treeCtrl7, 1, wx.ALL | wx.EXPAND, 5) self.root_node = self.m_treeCtrl7.AddRoot("/", 0) imglist = wx.ImageList(16, 16, True, 2) imglist.Add(wx.ArtProvider.GetBitmap(wx.ART_FOLDER, size=wx.Size(16, 16))) imglist.Add(wx.ArtProvider.GetBitmap(wx.ART_NORMAL_FILE, size=wx.Size(16, 16))) self.m_treeCtrl7.AssignImageList(imglist) self.m_treeCtrl7.Bind(wx.EVT_TREE_ITEM_MENU, self.TreeCtlOnContextMenu) self.m_treeCtrl7.Bind(wx.EVT_TREE_SEL_CHANGING, self.load_data) self.m_menu21 = wx.Menu() self.m_menu21_m_menuItem1 = wx.MenuItem(self.m_menu21, wx.ID_ANY, u"copy path", wx.EmptyString, wx.ITEM_NORMAL) self.m_menu21_m_menuItem1.handler = self.copy_path self.m_menu21.Append(self.m_menu21_m_menuItem1) self.m_menu21_m_menuItem2 = wx.MenuItem(self.m_menu21, wx.ID_ANY, u"copy name", wx.EmptyString, wx.ITEM_NORMAL) self.m_menu21_m_menuItem2.handler = self.copy_name self.m_menu21.Append(self.m_menu21_m_menuItem2) self.m_menu21_m_menuItem3 = wx.MenuItem(self.m_menu21, wx.ID_ANY, u"delete node", wx.EmptyString, wx.ITEM_NORMAL) self.m_menu21_m_menuItem3.handler = self.delete_node self.m_menu21.Append(self.m_menu21_m_menuItem3) self.m_menu21_m_menuItem4 = wx.MenuItem(self.m_menu21, wx.ID_ANY, u"refresh", wx.EmptyString, wx.ITEM_NORMAL) self.m_menu21_m_menuItem4.handler = self.refresh_node self.m_menu21.Append(self.m_menu21_m_menuItem4) self.m_menu22 = wx.Menu() self.m_menu22_m_menuItem1 = wx.MenuItem(self.m_menu22, wx.ID_ANY, u"copy value", wx.EmptyString, wx.ITEM_NORMAL) self.m_menu22.Append(self.m_menu22_m_menuItem1) # self.m_menu22_m_menuItem1.handler = self.copy_value self.m_panel8.SetSizer(bSizer20) self.m_panel8.Layout() bSizer20.Fit(self.m_panel8) self.m_splitter9.SplitHorizontally(self.m_panel7, self.m_panel8, 40) bSizer12.Add(self.m_splitter9, 1, wx.EXPAND, 5) self.m_panel3.SetSizer(bSizer12) self.m_panel3.Layout() bSizer12.Fit(self.m_panel3) self.m_panel4 = wx.Panel(self.m_splitter2, wx.ID_ANY, wx.DefaultPosition, wx.Size(200, -1), wx.NO_BORDER) bSizer19 = wx.BoxSizer(wx.VERTICAL) self.m_notebook1 = wx.Notebook(self.m_panel4, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0) self.m_panel11 = wx.Panel(self.m_notebook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) bSizer21 = wx.BoxSizer(wx.VERTICAL) self.m_button5 = wx.Button(self.m_panel11, wx.ID_ANY, u"save", wx.DefaultPosition, wx.DefaultSize, 0) bSizer21.Add(self.m_button5, 0, wx.ALL, 5) self.m_textCtrl10 = wx.TextCtrl(self.m_panel11, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.TE_MULTILINE | wx.TE_WORDWRAP) self.m_textCtrl10.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW)) bSizer21.Add(self.m_textCtrl10, 1, wx.ALL | wx.EXPAND, 5) self.m_panel11.SetSizer(bSizer21) self.m_panel11.Layout() bSizer21.Fit(self.m_panel11) self.m_notebook1.AddPage(self.m_panel11, u"Node data", True) self.m_panel12 = wx.Panel(self.m_notebook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) bSizer8 = wx.BoxSizer(wx.VERTICAL) self.m_dataViewListCtrl1 = wx.dataview.DataViewListCtrl(self.m_panel12, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, style=wx.dataview.DV_HORIZ_RULES | wx.dataview.DV_VERT_RULES) self.m_dataViewListColumn1 = self.m_dataViewListCtrl1.AppendTextColumn(u"Name", width=350) self.m_dataViewListColumn2 = self.m_dataViewListCtrl1.AppendTextColumn(u"Value") self.m_dataViewListCtrl1.Bind(wx.dataview.EVT_DATAVIEW_ITEM_CONTEXT_MENU, self.copy_value) bSizer8.Add(self.m_dataViewListCtrl1, 1, wx.ALL | wx.EXPAND, 5) # self.m_propertyGrid1 = pg.PropertyGrid(self.m_panel12, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.propgrid.PG_DEFAULT_STYLE | wx.propgrid.PG_SPLITTER_AUTO_CENTER) self.m_panel12.SetSizer(bSizer8) self.m_panel12.Layout() bSizer8.Fit(self.m_panel12) self.m_notebook1.AddPage(self.m_panel12, u"Node Metadata", False) self.m_panel13 = wx.Panel(self.m_notebook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) self.m_notebook1.AddPage(self.m_panel13, u"Node Acl", False) bSizer19.Add(self.m_notebook1, 1, wx.EXPAND | wx.ALL, 5) self.m_panel4.SetSizer(bSizer19) self.m_panel4.Layout() self.m_splitter2.SplitVertically(self.m_panel3, self.m_panel4, 300) bSizer4.Add(self.m_splitter2, 1, wx.EXPAND, 5) self.SetSizer(bSizer4) self.Layout() self.m_menubar1 = wx.MenuBar(0) self.connect_btn = wx.Menu() self.m_menubar1.Append(self.connect_btn, u"Connect") self.refresh_btn = wx.Menu() self.m_menubar1.Append(self.refresh_btn, u"Refresh") self.connect_btn.Bind(wx.EVT_MENU_OPEN, self.open_dialog) self.refresh_btn.Bind(wx.EVT_MENU_OPEN, self.load) self.SetMenuBar(self.m_menubar1) self.Centre(wx.BOTH)
def pressed(self, evt: wx.CommandEvent): wx.GenericMessageDialog( parent=wx.GetTopLevelWindows()[0], caption='Pressed!', message='The example item was pressed!' ).ShowModal()
def about(self, evt: wx.CommandEvent) -> None: wx.GenericMessageDialog( parent=self, message= 'Chat "protocol" by ENDERZOMBI102\nApp by ENDERZOMBI102\nUsed frameworks:\n - wxPython\n - socket', caption='About Simple Chat Client').ShowModal()
def onKeyPress(self, event): keycode = event.GetKeyCode() if keycode == wx.WXK_SPACE: if self.GetSelectedItemCount() > 1: selected = utils.get_selected_items(self) focused = utils.get_focused_items(self) check = ( not self.IsItemChecked(selected[0]) if (not selected[0] in focused) else self.IsItemChecked(selected[0]) ) for index in selected: #self.Focus(index) if not index in focused: self.CheckItem(index, check) for index in focused: if not index in selected: self.CheckItem(index, not check) event.Skip() elif self.GetSelectedItemCount() == 1: # Select next item row_id = self.GetFirstSelected() self.CheckItem(row_id, self.IsItemChecked(row_id)) self.Select(row_id, on=False) self.Select(row_id + 1, on=True) self.Focus(row_id + 1) self.EnsureVisible(row_id + 1) elif keycode == wx.WXK_F2: if self.GetSelectedItemCount() == 1: index = self.GetFirstSelected() self.EditLabel(index) event.Skip() elif keycode == wx.WXK_CONTROL_A: self.Freeze() item = -1 while 1: item = self.GetNextItem(item) if item == -1: break self.SetItemState(item, wx.LIST_STATE_SELECTED, wx.LIST_STATE_SELECTED) self.Thaw() event.Skip() elif keycode == wx.WXK_DELETE: if event.GetModifiers() == wx.MOD_SHIFT: self.DeleteSelectionCb(None) else: selected = utils.get_selected_items(self) selected.reverse() # Delete all the items, starting with the last item self.Freeze() for row_id in selected: pos = self.GetItemData(row_id) # 0-based unsorted index self.DeleteItem(row_id) del self.listdata[pos] key = self.listdatanameinv[pos] del self.listdatanameinv[pos] del self.listdataname[key] self.Thaw() event.Skip() elif keycode == wx.WXK_CONTROL_V: files = utils.ClipBoardFiles() if files: dlg = wx.GenericMessageDialog( self.GetParent().GetParent(), "Add the files to source or choice list?", "Paste question", wx.YES_NO | wx.ICON_QUESTION, ) dlg.SetYesNoLabels("Sources", "Choices") Qsources = dlg.ShowModal() == wx.ID_YES dlg.Destroy() if Qsources: self.GetParent().GetParent().GetParent().AddSourcesFromFiles(files) else: self.GetParent().GetParent().GetParent().AddChoicesFromFiles(files) event.Skip() elif keycode == wx.WXK_CONTROL_P: if self.GetSelectedItemCount() == 1: row_id = self.GetFirstSelected() pos_column_match = 0 for i in self.GetColumnsOrder() if self.HasColumnOrderSupport() else range(0, len(config.default_columns)): if i == 2: break pos_column_match += self.GetColumnWidth(i) rect = self.GetItemRect(row_id) position = self.ClientToScreen(rect.GetPosition()) dia = PickCandidate(self, row_id, wx.Point(position.x + pos_column_match, position.y), selectNextOnClose=True) dia.Show() dia.text.SetFocus() elif keycode == wx.WXK_CONTROL_R: self.NoMatchSelectionCb(None) if self.GetSelectedItemCount() == 1: # Select next item row_id = self.GetFirstSelected() self.Select(row_id, on=False) self.Select(row_id + 1, on=True) self.Focus(row_id + 1) self.EnsureVisible(row_id + 1) event.Skip() elif keycode == wx.WXK_CONTROL_B: self.ReMatchSelectionCb(None) if self.GetSelectedItemCount() == 1: # Select next item row_id = self.GetFirstSelected() self.Select(row_id, on=False) self.Select(row_id + 1, on=True) self.Focus(row_id + 1) self.EnsureVisible(row_id + 1) event.Skip() elif keycode == wx.WXK_RETURN: selected = utils.get_selected_items(self) for row_id in selected: pos = self.GetItemData(row_id) # 0-based unsorted index data = self.listdata[pos] filename_path = data[config.D_FILENAME] utils.open_file(str(filename_path[0])) event.Skip() elif keycode: event.Skip()
def test_gmsgdlg2(self): dlg = wx.GenericMessageDialog(self.frame, 'Message', 'Caption') wx.CallLater(250, dlg.EndModal, wx.ID_OK) dlg.ShowModal() dlg.Destroy()
def test_gmsgdlg1(self): dlg = wx.GenericMessageDialog(None, 'Message', 'Caption') dlg.Destroy()
def error_callback(self, msg): dialog = wx.GenericMessageDialog(self.gui, message=msg, caption='Sound loading error', style=wx.OK | wx.ICON_ERROR) wx.CallAfter(dialog.ShowModal)
select_msg = "\n".join(os.listdir("./pics")) dlg = wx.TextEntryDialog(None, select_msg, style=wx.OK | wx.CANCEL | wx.STAY_ON_TOP, pos=wx.Point(500, 500)) dlg.ShowModal() select = int(dlg.GetValue()) keyword = dlg.GetValue() img_path = os.listdir("./pics")[select - 1] img, thresh, conts = process_img("./pics/" + img_path) time.sleep(.5) msg = wx.GenericMessageDialog(None, "Processed!", style=wx.STAY_ON_TOP) msg.ShowModal() msg.Destroy() # if(keyboard.is_pressed('l')): # print(os.listdir("./pics")) # img_path = os.listdir("./pics")[0] # msg = wx.GenericMessageDialog(None, "Selected!", style = wx.STAY_ON_TOP) # msg.ShowModal() # msg.Destroy() # time.sleep(.5) if (keyboard.is_pressed('p')): print("processing...") dlg = wx.TextEntryDialog(None,