Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    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()
Ejemplo n.º 7
0
    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)
Ejemplo n.º 8
0
    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))
Ejemplo n.º 9
0
 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)
Ejemplo n.º 10
0
 def create_control(self):
     c = GenStaticText(self.parent, style=wx.ALIGN_LEFT)
     return c
Ejemplo n.º 11
0
    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)
Ejemplo n.º 12
0
    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()
Ejemplo n.º 13
0
    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)
Ejemplo n.º 14
0
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()