def getStaticTextBuff(parent, id, text, pos, size, bCreate=True): """ Возвращает StaticText из буфера либо создает новый. """ global staticTextBuff _uuid = parent._uuid bBuff = False if _uuid not in staticTextBuff or bCreate: statTextCtrl = GenStaticText(parent, -1, text, pos, size) else: try: statTextCtrl = staticTextBuff[_uuid].pop(0) statTextCtrl.SetPosition(pos) statTextCtrl.SetSize(size) statTextCtrl.SetLabel(text) font = icFont({}) statTextCtrl.SetFont(font) statTextCtrl.Show(True) bBuff = True except: LogLastError('GIVE FROM BUFF ERROR') staticTextBuff = {} statTextCtrl = GenStaticText(parent, -1, text, pos, size) return bBuff, statTextCtrl
def __init__(self, parent): super(StatusbarWidget, self).__init__(parent, style=wx.SB_FLAT) self.SetFieldsCount(3) self.SetStatusWidths([-6, -1, -1]) self.size_changed = False self._label_info = GenStaticText(self, -1, '') self._label_coord = GenStaticText(self, -1, '') self._label_simulation = GenStaticText(self, -1, '') self.Bind(wx.EVT_SIZE, self.on_size) self.Bind(wx.EVT_IDLE, self.on_idle)
def showUI(self): """ 展示用户列表在界面的布局,在该类中如何使用,使用设备上下文将该函数内代码显示的内容,画到屏幕上; :return: """ self.main_box = wx.BoxSizer(wx.VERTICAL) print("计时器开启计时") for usr_card in self.usr_sheet.usersheet: # for usr_card in ["usr_card#192.168.1.107#DESKTOP-4423EFF#DESKTOP-4423EFF", "usr_card#192.168.1.107#DESKTOP-4423EFF#DESKTOP-4423EFF"]: # print(f"usrspanel {i}") # 如何做到将用户列表里面的信息以垂直列表的形式添加到其中。 # sig_panel = wx.Panel(self) head_sizer = wx.GridBagSizer(hgap=5, vgap=5) usr_photo = wx.Image("./images/profile_photo_v0.1.png", wx.BITMAP_TYPE_ANY) self.sbm_profile = wx.StaticBitmap(self, -1, wx.BitmapFromImage(usr_photo)) self.sbm_profile.Bind(wx.EVT_LEFT_DCLICK, self.pop_chat_window) usr_name = usr_card.usr_name() # usr_name = usr_card.split("#")[2] host_name = usr_card.host_name() # host_name = usr_card.split("#")[3] print(usr_name) self.usr_txt = GenStaticText(self, -1, label="用户名:") self.host_txt = GenStaticText(self, -1, label="主机名:") self.host_name = GenStaticText(self, -1, label=host_name) self.usr_name = GenStaticText(self, -1, label=usr_name) # 个人信息状态布局 head_sizer.Add(self.sbm_profile, pos=(0, 0), span=(2, 1), flag=wx.EXPAND) head_sizer.Add(self.usr_txt, pos=(0, 1), flag=wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL) head_sizer.Add(self.host_txt, pos=(1, 1), flag=wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL) head_sizer.Add(self.usr_name, pos=(0, 2), flag=wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL) head_sizer.Add(self.host_name, pos=(1, 2), flag=wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL) head_sizer.AddGrowableCol(2) # head_sizer.AddGrowableRow(1) self.main_box.Add(head_sizer, flag=wx.EXPAND | wx.ALL, border=5) self.SetSizerAndFit(self.main_box)
def usr_card(self, usr_card): ip = usr_card.ip() # print("ok") head_sizer = wx.GridBagSizer(hgap=5, vgap=5) usr_photo = wx.Image("./images/profile_photo_v0.1.png", wx.BITMAP_TYPE_ANY) self.sbm_profile = wx.StaticBitmap(self, -1, wx.BitmapFromImage(usr_photo), name=ip) self.sbm_profile.Bind(wx.EVT_LEFT_DCLICK, self.pop_chat_window) usr_name = usr_card.usr_name() self.ip_list.append(ip) # usr_name = usr_card.split("#")[2] host_name = usr_card.host_name() # host_name = usr_card.split("#")[3] print(usr_name) self.usr_text = GenStaticText(self, -1, label="用户名:", name=ip) self.usr_text.Bind(wx.EVT_LEFT_DCLICK, self.pop_chat_window) self.host_text = GenStaticText(self, -1, label="IP地址:", name=ip) self.host_text.Bind(wx.EVT_LEFT_DCLICK, self.pop_chat_window) self.ip = GenStaticText(self, -1, label=ip, name=ip) self.ip.Bind(wx.EVT_LEFT_DCLICK, self.pop_chat_window) self.usr_name = GenStaticText(self, -1, label=usr_name, name=ip) self.usr_name.Bind(wx.EVT_LEFT_DCLICK, self.pop_chat_window) # 个人信息状态布局 head_sizer.Add(self.sbm_profile, pos=(0, 0), span=(2, 1), flag=wx.EXPAND) head_sizer.Add(self.usr_text, pos=(0, 1), flag=wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL) head_sizer.Add(self.host_text, pos=(1, 1), flag=wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL) head_sizer.Add(self.usr_name, pos=(0, 2), flag=wx.EXPAND | wx.ALIGN_CENTER) head_sizer.Add(self.ip, pos=(1, 2), flag=wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL) head_sizer.AddGrowableCol(2) # head_sizer.AddGrowableRow(1) self.main_box.Add(head_sizer, flag=wx.EXPAND | wx.ALL, border=5) self.SetSizerAndFit(self.main_box)
def make_test_items(self, features): self.alpha_title = GenStaticText(self, size=(100, -1), label="Choose Alpha: ", style=wx.ALIGN_RIGHT) self.alpha_title.SetBackgroundColour((210, 210, 210)) self.alpha_choice = wx.ComboBox(self, self.id, choices=[], style=wx.CB_READONLY) self.toggle_Coeffs([False, False]) self.gensizer.Add(self.alpha_title, 1) self.gensizer.Add(self.alpha_choice, 1) self.id += 1 self.sample_x_choice = ['X' + str(f + 1) for f in features] x_title = GenStaticText(self, size=(100, -1), label="Choose X: ", style=wx.ALIGN_RIGHT) x_title.SetBackgroundColour((210, 210, 210)) self.x_values = np.zeros(len(features)) self.x_choice = wx.ComboBox(self, self.id, choices=self.sample_x_choice, style=wx.CB_READONLY) self.id += 1 self.x_value = wx.TextCtrl(self, self.id) self.x_value.SetBackgroundColour((210, 210, 210)) self.id += 1 self.gensizer.Add(x_title, 1) self.gensizer.Add(self.x_choice, 0) self.gensizer.Add(self.x_value, 1) self.alpha_choice.Bind(wx.EVT_COMBOBOX, self.on_alpha_choice_changed) self.x_value.Bind(wx.EVT_TEXT, self.on_x_value_changed) self.x_choice.Bind(wx.EVT_COMBOBOX, self.on_x_choice_changed)
def InitUI(self): panel = wx.Panel(self) vbox = wx.BoxSizer(wx.VERTICAL) hbox = wx.BoxSizer(wx.HORIZONTAL) st = GenStaticText(panel, label='Go to web site:') st.SetFont(wx.Font(11, wx.SWISS, wx.NORMAL, wx.BOLD, False, 'Verdana')) hbox.Add(st, flag=wx.LEFT, border=20) link_wid = Link(panel, label='ZetCode') link_wid.SetUrl('http://www.zetcode.com') hbox.Add(link_wid, flag=wx.LEFT, border=20) vbox.Add(hbox, flag=wx.TOP, border=30) panel.SetSizer(vbox) self.SetTitle('A Hyperlink') self.Centre()
def __init__(self, parent, *args, **kwargs): wx.Panel.__init__(self, parent, *args, **kwargs) self.entry_label = GenStaticText(self, wx.ID_ANY, label=" default label ", size=(-1, 30)) # Use the default width (-1) and 30 pixel height # Set the background color to palegoldenrod self.entry_label.SetBackgroundColour('#EEE8AA') self.entry = wx.TextCtrl(self, wx.ID_ANY, '') self.entry.SetBackgroundColour('#EEE8AA') self.entry.SetWindowStyleFlag(wx.TE_PROCESS_ENTER) # Arrange the widgets in a horizontal BoxSizer dlg_sizer = wx.BoxSizer(wx.HORIZONTAL) dlg_sizer.Add(self.entry_label, 1, border=0) dlg_sizer.Add(self.entry, 1, wx.EXPAND, border=0) self.SetSizer(dlg_sizer)
def __init__(self, parent, widths, error_delay): wx.StatusBar.__init__(self, parent, -1) self.error_delay = error_delay self.SetFieldsCount(len(widths)) self.SetStatusWidths(widths) self.field_widths = list(widths) self.error_control = GenStaticText(self, -1) self.error_control.Hide() self.message_expire_time = 0 self.reposition_controls() self.expire_timer = wx.Timer(self) self.Bind(wx.EVT_TIMER, self.on_timer, self.expire_timer) self.Bind(wx.EVT_SIZE, self.on_size) f = self.GetFont() self.error_control.SetFont( wx.Font(f.GetPointSize(), f.GetFamily(), f.GetStyle(), wx.BOLD, f.GetUnderlined(), f.GetFaceName(), f.GetEncoding())) self.error_control.SetForegroundColour((255, 255, 255)) self.error_control.SetBackgroundColour((211, 72, 54))
def __init__(self, parent): wx.Panel.__init__(self, parent) # Page indicator self.pagenum_txtctrl = GenStaticText(self, label="") # Page controls width = 60 self.first_btn = NavButton(self, id=ID_FIRST, label='First') self.prev_btn = NavButton(self, id=ID_PREV, label='Previous') self.next_btn = NavButton(self, id=ID_NEXT, label='Next') self.last_btn = NavButton(self, id=ID_LAST, label='Last') # Arranging layout sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(1) sizer.Add(self.first_btn, 1, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 0) sizer.AddSpacer(1) sizer.Add(self.prev_btn, 1, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 0) sizer.AddStretchSpacer(1) sizer.Add(self.pagenum_txtctrl, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 0) sizer.AddStretchSpacer(1) sizer.Add(self.next_btn, 1, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 0) sizer.AddSpacer(1) sizer.Add(self.last_btn, 1, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 0) sizer.AddSpacer(1) self.SetSizer(sizer) # Bind buttons to events self.Bind(wx.EVT_BUTTON, self.change_page_by_button) # Change text to update position self.set_page(0, 0)
def create_control(self): c = GenStaticText(self.parent, style=wx.ALIGN_LEFT) return c
def __init__(self, main, indx, name='', value='', type=icDefInf.EDT_TEXTFIELD, dict={}, nameType=icNameTypeNormal, height=oiLineHeight): """ @type main: C{wx.Window} @param main: Указатель на окно сплиттера. @type indx: C{int} @param indx: Индекс свойства. @type type: C{int} @param type: Тип редактора. EDT_TEXTFIELD = 0 - текстовое поле, EDT_CHOICE = 1 - Choice, EDT_CHECK_BOX = 2 - CheckBox, EDT_2CHECK_BOX = 3 - Разворачиваемый набор CheckBox (используется для комбинированных свойств). EDT_EXTERNAL = 4 - Внешний редактор. @type dict: C{Dictionary} @param dict: Словарь дополнительных свойств. @type nameType: C{int} @param nameType: Тип представления названия свойства: icNameTypeNormal - StaticText. icNameTypeCheckBox - CheckBox. icNameTypeReadonly - Нередактируемое свойство - StaticText выделенный жирным шрифтом. @type height: C{int} @param height: Высота строки. """ icEvent.__init__(self) self.main = main self.name = name self.value = value self.oldValue = value self.height = height - IECWidthFudge self.isSelected = False self.edit_ctrl = None self.topLine = None self.bottomLine = None self.colorBox = None # Список ключей комбинированного свойства (EDT_COMBINE) self.comboKeys = None # Список индексов свойств помеченных для удаления self.list_del_property = [] self.type = type self.nameType = nameType self.dict = dict self.__editorEnable = main.isToggleEnable() bBuffName = False bBuffVal = False if nameType != icNameTypeCheckBox and type != icDefInf.EDT_COMBINE: bBuffName, self.name_ctrl = getStaticTextBuff(main.panel1, icwidget.icNewId(), ' ' + name, pos=(0, indx * height), size=(1, height - 2)) self.name_ctrl.SetBackgroundColour(wx.Colour(240, 240, 240)) if nameType == icNameTypeReadonly: font = icFont({'style': 'bold'}) self.name_ctrl.SetFont(font) self.name_ctrl.SetLabel(' ' + name) elif nameType == icNameTypeAddPropery: font = icFont({'style': 'bold'}) self.name_ctrl.SetFont(font) self.name_ctrl.SetLabel(' ' + name) self.name_ctrl.SetBackgroundColour(wx.Colour(230, 230, 210)) else: id = icwidget.icNewId() self.name_ctrl = wx.CheckBox(main.panel1, id, name, pos=(0, indx * height), size=(1, height)) self.name_ctrl.SetValue(1) self.name_ctrl.Bind(wx.EVT_CHECKBOX, self.OnExpand, id=id) if type == icDefInf.EDT_FONT: self.comboKeys = icEdtFontKeys else: try: self.comboKeys = value.keys() except: print(name, value) font = icFont({'style': 'bold'}) self.name_ctrl.SetFont(font) if type == icDefInf.EDT_COLOR: self.colorBox = wx.Window(main.panel2, -1, (3, indx * height), (14, height - 6), style=wx.SIMPLE_BORDER) if value is not None: self.colorBox.SetBackgroundColour( wx.Colour(value[0], value[1], value[2])) self.value_ctrl = GenStaticText(main.panel2, icwidget.icNewId(), self.GetStr(), pos=(20, indx * height), size=(1, height)) elif type == icDefInf.EDT_CHOICE: self.value_ctrl = wx.StaticText(main.panel2, icwidget.icNewId(), self.GetStr(), pos=(2, indx * height), size=(1, height), style=wx.ST_NO_AUTORESIZE) else: bBuffVal, self.value_ctrl = getStaticTextBuff(main.panel2, icwidget.icNewId(), self.GetStr(), pos=(2, indx * height), size=(1, height)) self.value_ctrl.SetForegroundColour(wx.Colour(20, 100, 180)) self.line_name = wx.StaticLine(main.panel1, -1, style=wx.LI_HORIZONTAL, pos=(-2, (indx + 1) * height - IECWidthFudge), size=(10, 1)) self.line_value = wx.StaticLine(main.panel2, -1, style=wx.LI_HORIZONTAL, pos=(-2, (indx + 1) * height - IECWidthFudge), size=(200, 1)) if not bBuffName: self.name_ctrl.Bind(wx.EVT_LEFT_DOWN, main.OnSelect) if not bBuffVal: self.value_ctrl.Bind(wx.EVT_LEFT_DOWN, main.OnSelect)
def __init__(self, *args, **kwargs): # ensure the parent's __init__ is called. super(self.__class__, self).__init__(*args, **kwargs) # 启动端口监听,将收到的卡片保存在用户表单中,若是收到的是用户的信息则发给对应的聊天窗口; # 当程序启动时,使用UDP协议向255.255.255.255这个广播地址发送广播包,默认端口是44444。 self.usr_sheet = UserSheet() self.ip = self.usr_sheet.get_ip() self.message_list = [] self.pop_chat_window_list = [] Listener(self).start() # Set the window's size self.SetMaxSize((MAIN_WIN_WIDTH, MAIN_WIN_HIGH)) self.SetMinSize((MAIN_WIN_WIDTH, MAIN_WIN_HIGH)) # set Icon self.icon_img_path = os.path.abspath("./images/Icon_v0.1.png") self.icon = wx.Icon(self.icon_img_path, type=wx.BITMAP_TYPE_ANY) self.SetIcon(self.icon) # create a panel in the frame self.windowpanel = wx.Panel(self) # 添加头像 50* 50 # 载入图像 profile_photo = wx.Image("./images/profile_photo_v0.1.png", wx.BITMAP_TYPE_ANY) # 缩放图像 # 转换它们为静态位图部件 self.sbm_profile = wx.StaticBitmap(self.windowpanel, -1, wx.BitmapFromImage(profile_photo)) self.sbm_profile.Bind(wx.EVT_LEFT_DCLICK, self.OnChangeprofilegraph) # put them into the sizer # 添加状态图标和文字 list_status = ['在线', '忙', '离线'] self.combo_box_1 = wx.ComboBox(self.windowpanel, -1, value='在线', choices=list_status, style=wx.CB_SORT) # 添加事件处理; self.Bind(wx.EVT_COMBOBOX, self.OnConbobox, self.combo_box_1) # 添加计算机名称 self.host_name = HOST_NAME # 使用 wx.lib.stattext.GenStaticText # self.hname = wx.StaticText(self.windowpanel, label=self.host_name) self.hname = GenStaticText(self.windowpanel, -1, label=self.host_name) self.hname.Bind(wx.EVT_LEFT_DCLICK, self.OnChangehostname) # 添加个性签名 profile_sign = '编辑个性签名' # self.psign = wx.StaticText(self.windowpanel, label=profile_sign) # wx.StaticText 是c++写的原生控件,不支持鼠标事件,而wx.lib.stattext.GenStaticText # 是使用python重写的一个静态文本控件,支持鼠标事件。 self.psign = GenStaticText(self.windowpanel, -1, label=profile_sign) # 下面代码没有效果。 鼠标的事件应该绑定到具体的组件上而不是框架上。 # self.Bind(wx.EVT_LEFT_DCLICK, self.OnChangehostname, self.hname) self.psign.Bind(wx.EVT_LEFT_DCLICK, self.OnChangepsign) # 添加搜索栏 self.search_bar = wx.TextCtrl(self.windowpanel, -1, "Search friends!") # 当输入用户名后,回车返回搜索到的好友。 # 添加用户列表notebook。 # 使用notebook控件来达到用户列表,组列表的多标签窗口; # 如何使用notebook控件: 如下,定义不同的面板类,添加到多标签窗口中. self.note_book = wx.Notebook(self.windowpanel) self.note_book.AddPage(UsrsPanel(self.note_book, self), "用户列表") self.note_book.AddPage(GroupPanel(self.note_book), "用户组列表") self.note_book.AddPage(UsrSheetShow(self.usr_sheet, self.note_book), "用户组列表2") # 测试函数用按钮 self.testhostname = wx.Button(self.windowpanel, -1, "testhostname") self.Bind(wx.EVT_BUTTON, self.OnChangehostname, self.testhostname) # layout # 主要布局 mainbox = wx.BoxSizer(wx.VERTICAL) # 个人信息状态布局 headsizer = wx.GridBagSizer(hgap=10, vgap=10) headsizer.Add(self.sbm_profile, pos=(0, 0), span=(2, 1), flag=wx.EXPAND) headsizer.Add(self.combo_box_1, pos=(0, 1)) headsizer.Add(self.hname, pos=(0, 2)) headsizer.Add(self.psign, pos=(1, 1), span=(1, 2)) headsizer.Add(self.search_bar, pos=(2, 0), span=(1, 3), flag=wx.EXPAND) # 使最后的行和列可增长。 headsizer.AddGrowableCol(2) headsizer.AddGrowableRow(2) mainbox.Add(headsizer, proportion=0, flag=wx.EXPAND | wx.ALL, border=10) # 用户列表布局 # usrs_sizer = wx.BoxSizer() # usrs_sizer.Add(self.note_book) # mainbox.Add(usrs_sizer, flag=wx.EXPAND | wx.ALL, border=10) # 使用上面三行代码会导致notebook控件不能向两边自动扩充,而是根据内容实际的尺寸。 mainbox.Add(self.note_book, proportion=1, flag=wx.EXPAND | wx.LEFT | wx.RIGHT | wx.BOTTOM, border=10) # 用于测试按钮的布局 testsizer = wx.BoxSizer() testsizer.Add(self.testhostname) mainbox.Add(testsizer) self.windowpanel.SetSizer(mainbox) self.windowpanel.Fit()
def make_items(self): algo_title = GenStaticText(self, size=(150, -1), label=" Choose Algorithm: ", style=wx.ALIGN_RIGHT) algo_title.SetBackgroundColour((210, 210, 210)) self.algo_choice = wx.ComboBox(self, self.id, choices=self.sample_algo_choice, style=wx.CB_READONLY) self.id += 1 datasizer = wx.BoxSizer(wx.HORIZONTAL) self.dataset = wx.Button(self, self.id, size=(150, -1), label="Load Dataset") self.id += 1 datasizer.Add(self.dataset) self.subsizer1 = wx.BoxSizer(wx.VERTICAL) self.subsizer1.Add(datasizer, 0, wx.ALL, 5) subsubsizer1 = wx.BoxSizer(wx.HORIZONTAL) subsubsizer1.Add(algo_title, 1) subsubsizer1.Add(self.algo_choice, 1) lambdasizer = wx.BoxSizer(wx.HORIZONTAL) self.lamnda_title = GenStaticText(self, size=(100, -1), label=" Lambda: ", style=wx.ALIGN_RIGHT) self.lamnda_title.SetBackgroundColour((210, 210, 210)) self.show_lambda = wx.TextCtrl(self, self.id) self.show_lambda.SetBackgroundColour((210, 210, 210)) self.id += 1 self.run = wx.Button(self, self.id, size=(100, -1), label="Run") self.id += 1 lambdasizer.Add(self.lamnda_title, 1) lambdasizer.Add(self.show_lambda, 1) lambdasizer.Add(self.run, 1) degreesizer = wx.BoxSizer(wx.HORIZONTAL) self.degree_title = GenStaticText(self, size=(100, -1), label=" Degree: ", style=wx.ALIGN_RIGHT) self.degree_title.SetBackgroundColour((210, 210, 210)) self.show_degree = wx.TextCtrl(self, self.id) self.show_degree.SetBackgroundColour((210, 210, 210)) self.id += 1 degreesizer.Add(self.degree_title, 1) degreesizer.Add(self.show_degree, 1) self.subsizer1.Add(subsubsizer1, 0, wx.ALL, 5) self.subsizer1.Add(lambdasizer, 0, wx.ALL, 5) self.subsizer1.Add(degreesizer, 0, wx.ALL, 5) subsubsizer2 = wx.BoxSizer(wx.HORIZONTAL) test_title = GenStaticText(self, size=(100, -1), label="Test Values: ", style=wx.ALIGN_RIGHT) test_title.SetBackgroundColour((210, 210, 210)) self.test_value = wx.TextCtrl(self, style=wx.CB_READONLY) self.test_value.SetBackgroundColour((210, 210, 210)) subsubsizer2.Add(test_title, 1) subsubsizer2.Add(self.test_value, 4) self.subsizer2 = wx.BoxSizer(wx.VERTICAL) self.subsizer2.Add(subsubsizer2, 0, wx.ALL, 5) self.gensizer = wx.BoxSizer(wx.HORIZONTAL) x_values_title = GenStaticText(self, size=(100, -1), label=" X Values: ", style=wx.ALIGN_RIGHT) x_values_title.SetBackgroundColour((210, 210, 210)) self.show_x_values = wx.TextCtrl(self, self.id, style=wx.CB_READONLY) self.show_x_values.SetBackgroundColour((210, 210, 210)) self.id += 1 xvaluessizer = wx.BoxSizer(wx.HORIZONTAL) xvaluessizer.Add(x_values_title, 1) xvaluessizer.Add(self.show_x_values, 4) self.subsizer2.Add(xvaluessizer, 0, wx.ALL, 5) self.subsizer2.Add(self.gensizer, 0, wx.ALL, 5) sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.Add(self.subsizer1, 1, wx.EXPAND | wx.ALL, 5) sizer.Add(self.subsizer2, 2, wx.EXPAND | wx.ALL, 5) self.SetSizer(sizer) self.SetupScrolling() self.dataset.Bind(wx.EVT_BUTTON, self.on_load_dataset) self.run.Bind(wx.EVT_BUTTON, self.on_run_algo) self.algo_choice.Bind(wx.EVT_COMBOBOX, self.on_algo_changed)
def LaunchDialog(localsettings, splashimagepath=False): dialog = wx.Dialog(None, -1, "Evette") dialog.Bind(wx.EVT_CLOSE, ExitApp) iconFile = "icons/evette.ico" icon1 = wx.Icon(iconFile, wx.BITMAP_TYPE_ICO) dialog.SetIcon(icon1) dialogsizer = wx.BoxSizer(wx.VERTICAL) panel = wx.Panel(dialog) topsizer = wx.BoxSizer(wx.VERTICAL) bgsizer = wx.BoxSizer(wx.VERTICAL) if splashimagepath == False: imagebitmap = wx.Bitmap(miscmethods.GetImagePath()) else: imagebitmap = wx.Bitmap("icons/images/" + splashimagepath) randomimage = wx.StaticBitmap(panel, -1, imagebitmap) framesize = imagebitmap.GetSize() bgsizer.Add(randomimage, 0, wx.ALIGN_CENTER) spacer = GenStaticText(panel, -1, "") topsizer.Add(spacer, 1, wx.EXPAND) horizontalsizer = wx.BoxSizer(wx.HORIZONTAL) infosizer = wx.BoxSizer(wx.VERTICAL) infosizer.Add(GenStaticText(panel, 1, ""), 1, wx.EXPAND) versionnolabel = GenStaticText(panel, -1, GetLabel("versionlabel", localsettings)) font = versionnolabel.GetFont() font.SetPointSize(font.GetPointSize() - 2) versionnolabel.SetFont(font) infosizer.Add(versionnolabel, 0, wx.ALIGN_CENTER) versionnoentry = GenStaticText(panel, -1, str(dbupdates.GetCurrentVersion())) font = versionnoentry.GetFont() font.SetPointSize(font.GetPointSize() + 8) font.SetWeight(wx.FONTWEIGHT_BOLD) versionnoentry.SetFont(font) versionnoentry.SetForegroundColour("blue") infosizer.Add(versionnoentry, 0, wx.ALIGN_CENTER) infosizer.Add(GenStaticText(panel, 1, ""), 1, wx.EXPAND) horizontalsizer.Add(infosizer, 1, wx.ALIGN_BOTTOM) horizontalsizer.Add(GenStaticText(panel, -1, ""), 1, wx.EXPAND) entrysizer = wx.BoxSizer(wx.VERTICAL) userlabel = GenStaticText(panel, -1, GetLabel("usernamelabel", localsettings) + ":") font = userlabel.GetFont() font.SetPointSize(font.GetPointSize() - 2) userlabel.SetFont(font) entrysizer.Add(userlabel, 0, wx.ALIGN_LEFT) userentry = wx.TextCtrl(panel, -1, localsettings.lastuser, size=(150, -1), style=wx.TE_PROCESS_ENTER) userentry.description = "username" userentry.Bind(wx.EVT_CHAR, ButtonPressed) userentry.SetToolTipString( GetLabel("tabbetweenentriestooltip", localsettings)) userentry.SetFocus() entrysizer.Add(userentry, 0, wx.EXPAND) passwordlabel = GenStaticText( panel, -1, GetLabel("passwordlabel", localsettings) + ":") passwordlabel.SetFont(font) entrysizer.Add(passwordlabel, 0, wx.ALIGN_LEFT) passwordentry = wx.TextCtrl(panel, -1, "", style=wx.TE_PASSWORD | wx.TE_PROCESS_ENTER) passwordentry.description = "password" passwordentry.SetFocus() passwordentry.Bind(wx.EVT_CHAR, ButtonPressed) entrysizer.Add(passwordentry, 0, wx.EXPAND) horizontalsizer.Add(entrysizer, 0, wx.ALIGN_BOTTOM) topsizer.Add(horizontalsizer, 1, wx.EXPAND) panel.SetSizer(topsizer) panel.userentry = userentry panel.passwordentry = passwordentry panel.localsettings = localsettings dialogsizer.Add(panel, 1, wx.EXPAND) dialog.SetSizer(dialogsizer) dialog.panel = panel dialog.SetSize(framesize) dialog.CenterOnScreen() dialog.ShowModal()