def InitUI(self):
self.panel = wx.Panel(self, wx.ID_ANY)
# Info Text
infotext = _(u'Close all open Applications, it is possible that programs will be closed without a warning '
u'and system could reboot without further confirmation.')
infobox = wx.StaticBox(self.panel, -1, _(u'Attention'))
infoboxbsizer = wx.StaticBoxSizer(infobox, wx.VERTICAL)
info = wx.StaticText(self.panel, label=infotext)
info.Wrap(380)
infoboxbsizer.Add(info, 0)
self.gauge = wx.Gauge(self.panel, size=(24, 26))
self.update_label = wx.StaticText(self.panel, label=_(u'Current Progress:'))
self.update_box = wx.TextCtrl(self.panel, style=wx.TE_READONLY)
self.update_box.SetBackgroundColour(wx.WHITE)
self.chk_shutdown = wx.CheckBox(self.panel, size=(160,20), label=_(u"Shutdown after update"))
self.logButton = wx.Button(self.panel, size=(54,26), label="LOG")
self.logButton.SetToolTip(wx.ToolTip(_(u'Open WPKG Log')))
self.logButton.SetBitmap(img.get('log'))
self.startButton = wx.Button(self.panel, label=_(u"Update"))
self.abortButton = wx.Button(self.panel, label=_(u"Cancel"))
self.logButton.Disable()
self.abortButton.Disable()
self.line = wx.StaticLine(self.panel, -1, size=(2,2), style=wx.LI_HORIZONTAL)
self.startButton.Bind(wx.EVT_BUTTON, self.OnStartButton)
self.abortButton.Bind(wx.EVT_BUTTON, self.OnAbortButton)
self.logButton.Bind(wx.EVT_BUTTON, self.OnLogButton)
self.sizer = wx.BoxSizer(wx.VERTICAL)
self.sizer2 = wx.BoxSizer(wx.HORIZONTAL)
self.sizer.Add(infoboxbsizer, 0, wx.ALL | wx.EXPAND, 5)
self.sizer.Add(self.gauge, 0, wx.ALL | wx.EXPAND, 5)
self.sizer.Add(self.update_label, 0, wx.ALL | wx.EXPAND, 5)
self.sizer.Add(self.update_box, 0, wx.ALL | wx.EXPAND, 5)
self.sizer.Add(self.line, 0, wx.ALL | wx.EXPAND, 5)
self.sizer.Add(self.chk_shutdown, 0, wx.LEFT | wx.EXPAND, 7)
self.sizer2.Add(self.logButton, 0)
self.sizer2.AddStretchSpacer()
self.sizer2.Add(self.startButton, 0)#, wx.RIGHT, 2)
self.sizer2.Add(self.abortButton, 0)
self.sizer.Add(self.sizer2, 0, wx.ALL | wx.EXPAND, 5)
self.panel.SetSizerAndFit(self.sizer)
self.Center()
python类StaticBoxSizer()的实例源码
def __do_layout(self):
# begin wxGlade: SerialConfigDialog.__do_layout
sizer_2 = wx.BoxSizer(wx.VERTICAL)
sizer_3 = wx.BoxSizer(wx.HORIZONTAL)
self.sizer_flow_staticbox.Lower()
sizer_flow = wx.StaticBoxSizer(self.sizer_flow_staticbox, wx.HORIZONTAL)
self.sizer_timeout_staticbox.Lower()
sizer_timeout = wx.StaticBoxSizer(self.sizer_timeout_staticbox, wx.HORIZONTAL)
self.sizer_format_staticbox.Lower()
sizer_format = wx.StaticBoxSizer(self.sizer_format_staticbox, wx.VERTICAL)
grid_sizer_1 = wx.FlexGridSizer(3, 2, 0, 0)
self.sizer_1_staticbox.Lower()
sizer_1 = wx.StaticBoxSizer(self.sizer_1_staticbox, wx.VERTICAL)
sizer_basics = wx.FlexGridSizer(3, 2, 0, 0)
sizer_basics.Add(self.label_2, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 4)
sizer_basics.Add(self.choice_port, 0, wx.EXPAND, 0)
sizer_basics.Add(self.label_1, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 4)
sizer_basics.Add(self.combo_box_baudrate, 0, wx.EXPAND, 0)
sizer_basics.AddGrowableCol(1)
sizer_1.Add(sizer_basics, 0, wx.EXPAND, 0)
sizer_2.Add(sizer_1, 0, wx.EXPAND, 0)
grid_sizer_1.Add(self.label_3, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 4)
grid_sizer_1.Add(self.choice_databits, 1, wx.EXPAND | wx.ALIGN_RIGHT, 0)
grid_sizer_1.Add(self.label_4, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 4)
grid_sizer_1.Add(self.choice_stopbits, 1, wx.EXPAND | wx.ALIGN_RIGHT, 0)
grid_sizer_1.Add(self.label_5, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 4)
grid_sizer_1.Add(self.choice_parity, 1, wx.EXPAND | wx.ALIGN_RIGHT, 0)
sizer_format.Add(grid_sizer_1, 1, wx.EXPAND, 0)
self.panel_format.SetSizer(sizer_format)
sizer_2.Add(self.panel_format, 0, wx.EXPAND, 0)
sizer_timeout.Add(self.checkbox_timeout, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 4)
sizer_timeout.Add(self.text_ctrl_timeout, 0, 0, 0)
sizer_timeout.Add(self.label_6, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 4)
self.panel_timeout.SetSizer(sizer_timeout)
sizer_2.Add(self.panel_timeout, 0, wx.EXPAND, 0)
sizer_flow.Add(self.checkbox_rtscts, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 4)
sizer_flow.Add(self.checkbox_xonxoff, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 4)
sizer_flow.Add((10, 10), 1, wx.EXPAND, 0)
self.panel_flow.SetSizer(sizer_flow)
sizer_2.Add(self.panel_flow, 0, wx.EXPAND, 0)
sizer_3.Add(self.button_ok, 0, 0, 0)
sizer_3.Add(self.button_cancel, 0, 0, 0)
sizer_2.Add(sizer_3, 0, wx.ALL | wx.ALIGN_RIGHT, 4)
self.SetSizer(sizer_2)
sizer_2.Fit(self)
self.Layout()
# end wxGlade
def __do_layout(self):
# begin wxGlade: SerialConfigDialog.__do_layout
# end wxGlade
sizer_2 = wx.BoxSizer(wx.VERTICAL)
sizer_3 = wx.BoxSizer(wx.HORIZONTAL)
sizer_basics = wx.StaticBoxSizer(wx.StaticBox(self, -1, "Basics"), wx.VERTICAL)
sizer_5 = wx.BoxSizer(wx.HORIZONTAL)
sizer_5.Add(self.label_2, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 4)
sizer_5.Add(self.combo_box_port, 1, 0, 0)
sizer_basics.Add(sizer_5, 0, wx.RIGHT|wx.EXPAND, 0)
if self.show & SHOW_BAUDRATE:
sizer_baudrate = wx.BoxSizer(wx.HORIZONTAL)
sizer_baudrate.Add(self.label_1, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 4)
sizer_baudrate.Add(self.choice_baudrate, 1, wx.ALIGN_RIGHT, 0)
sizer_basics.Add(sizer_baudrate, 0, wx.EXPAND, 0)
sizer_2.Add(sizer_basics, 0, wx.EXPAND, 0)
if self.show & SHOW_FORMAT:
sizer_8 = wx.BoxSizer(wx.HORIZONTAL)
sizer_7 = wx.BoxSizer(wx.HORIZONTAL)
sizer_6 = wx.BoxSizer(wx.HORIZONTAL)
sizer_format = wx.StaticBoxSizer(wx.StaticBox(self, -1, "Data Format"), wx.VERTICAL)
sizer_6.Add(self.label_3, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 4)
sizer_6.Add(self.choice_databits, 1, wx.ALIGN_RIGHT, 0)
sizer_format.Add(sizer_6, 0, wx.EXPAND, 0)
sizer_7.Add(self.label_4, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 4)
sizer_7.Add(self.choice_stopbits, 1, wx.ALIGN_RIGHT, 0)
sizer_format.Add(sizer_7, 0, wx.EXPAND, 0)
sizer_8.Add(self.label_5, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 4)
sizer_8.Add(self.choice_parity, 1, wx.ALIGN_RIGHT, 0)
sizer_format.Add(sizer_8, 0, wx.EXPAND, 0)
sizer_2.Add(sizer_format, 0, wx.EXPAND, 0)
if self.show & SHOW_TIMEOUT:
sizer_timeout = wx.StaticBoxSizer(wx.StaticBox(self, -1, "Timeout"), wx.HORIZONTAL)
sizer_timeout.Add(self.checkbox_timeout, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 4)
sizer_timeout.Add(self.text_ctrl_timeout, 0, 0, 0)
sizer_timeout.Add(self.label_6, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 4)
sizer_2.Add(sizer_timeout, 0, 0, 0)
if self.show & SHOW_FLOW:
sizer_flow = wx.StaticBoxSizer(wx.StaticBox(self, -1, "Flow Control"), wx.HORIZONTAL)
sizer_flow.Add(self.checkbox_rtscts, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 4)
sizer_flow.Add(self.checkbox_xonxoff, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 4)
sizer_flow.Add((10,10), 1, wx.EXPAND, 0)
sizer_2.Add(sizer_flow, 0, wx.EXPAND, 0)
sizer_3.Add(self.button_ok, 0, 0, 0)
sizer_3.Add(self.button_cancel, 0, 0, 0)
sizer_2.Add(sizer_3, 0, wx.ALL|wx.ALIGN_RIGHT, 4)
self.SetAutoLayout(1)
self.SetSizer(sizer_2)
sizer_2.Fit(self)
sizer_2.SetSizeHints(self)
self.Layout()
def create_static_box(self, **kwargs):
panel = kwargs.get('panel')
value = kwargs.get('value')
gui = kwargs.get('gui')
key = kwargs.get('key')
static_box = wx.StaticBox(panel, label=translate_key(MODULE_KEY.join(key)))
static_sizer = wx.StaticBoxSizer(static_box, wx.VERTICAL)
instatic_sizer = wx.BoxSizer(wx.VERTICAL)
spacer_size = 7
max_text_size = 0
text_ctrls = []
log.debug("Working on {0}".format(MODULE_KEY.join(key)))
spacer = False
hidden_items = gui.get('hidden', [])
for item, value in value.items():
if item in hidden_items and not self.show_hidden:
continue
view = gui.get(item, {}).get('view', type(value))
if view in self.value_map.keys():
fnction = self.value_map[view]
elif callable(value):
fnction = self.value_map['button']
else:
return
item_dict = fnction['function'](panel=static_box, item=item, value=value, key=key + [item],
bind=fnction['bind'], gui=gui.get(item, {}), from_sb=True)
if 'text_size' in item_dict:
if max_text_size < item_dict.get('text_size'):
max_text_size = item_dict['text_size']
text_ctrls.append(item_dict['text_ctrl'])
spacer = True if not spacer else instatic_sizer.AddSpacer(spacer_size)
instatic_sizer.Add(item_dict['item'], 0, wx.EXPAND, 5)
if max_text_size:
for ctrl in text_ctrls:
ctrl.SetMinSize((max_text_size + 50, ctrl.GetSize()[1]))
item_count = instatic_sizer.GetItemCount()
if not item_count:
static_sizer.Destroy()
return wx.BoxSizer(wx.VERTICAL)
static_sizer.Add(instatic_sizer, 0, wx.EXPAND | wx.ALL, 5)
return static_sizer
def __init__(self, data_index_uid, display, is_range, min_idx, max_idx, *args, **kwargs):
super(DimensionPanel, self).__init__(*args, **kwargs)
self.SetSize(300, 50)
#
self.data_index_uid = data_index_uid
OM = ObjectManager(self)
obj = OM.get(data_index_uid)
#
main_sizer = wx.StaticBoxSizer(wx.VERTICAL, self, obj.name)
#
self.top_panel = wx.Panel(self)
self.top_sizer = wx.BoxSizer(wx.HORIZONTAL)
#
self.check_display = wx.CheckBox(self.top_panel, -1, label='Display')
self.check_display.Bind(wx.EVT_CHECKBOX, self._on_check_display)
self.top_sizer.Add(self.check_display, 1, wx.ALIGN_CENTER|wx.LEFT, 30)
#
self.check_range = wx.CheckBox(self.top_panel, -1, label='Range')
self.check_range.Bind(wx.EVT_CHECKBOX, self._on_check_range)
self.top_sizer.Add(self.check_range, 1, wx.ALIGN_CENTER|wx.RIGHT, 30)
self.top_panel.SetSizer(self.top_sizer)
#
main_sizer.Add(self.top_panel, 0, wx.EXPAND|wx.TOP|wx.BOTTOM, 3)
#
self.label = obj.name
self.vec = obj.data
self.display = display
self.is_range = is_range
#
self.bottom_panel = wx.Panel(self)
self.bottom_sizer = wx.BoxSizer(wx.VERTICAL)
self.slider = RangeSlider(self.bottom_panel)
self.bottom_sizer.Add(self.slider, 0, wx.EXPAND)
self.text_value = wx.StaticText(self.bottom_panel, -1)
self.bottom_sizer.Add(self.text_value, 0, wx.ALIGN_CENTER)
self.bottom_panel.SetSizer(self.bottom_sizer)
#
main_sizer.Add(self.bottom_panel, 0, wx.EXPAND)
#
self.slider.SetRange(0, len(self.vec)-1)
self.min_idx = min_idx
self.max_idx = max_idx
#
if self.display:
self.set_check_display(1)
else:
self.set_check_display(0)
#
self.Bind(wx.EVT_PAINT, self._on_paint)
self.SetSizer(main_sizer)
main_sizer.Layout()