def __init__(self, parent, id, title, message, download_url, size=wx.DefaultSize, pos=wx.DefaultPosition, style=wx.DEFAULT_DIALOG_STYLE, name='dialog'):
wx.Dialog.__init__(self, parent, id, title, pos, size, style, name)
label = wx.StaticText(self, label=message)
button = wx.Button(self, id=wx.ID_OK, label="Close")
button.SetDefault()
line = wx.StaticLine(self, wx.ID_ANY, size=(20, -1), style=wx.LI_HORIZONTAL)
download_ctrl = hl.HyperLinkCtrl(self, wx.ID_ANY, download_url, URL=download_url)
sizer = wx.BoxSizer(wx.VERTICAL)
button_sizer = wx.StdDialogButtonSizer()
button_sizer.AddButton(button)
button_sizer.Realize()
sizer.Add(label, 0, wx.ALIGN_CENTER|wx.ALL, 5)
sizer.Add(download_ctrl, 0, wx.ALL, 10)
sizer.Add(line, 0, wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.RIGHT|wx.TOP, 5)
sizer.Add(button_sizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5)
self.SetSizer(sizer)
sizer.Fit(self)
python类GROW的实例源码
def __init__(self):
wx.Frame.__init__(self,None,-1,
'CanvasFrame',size=(550,350))
self.SetBackgroundColour(wx.NamedColor("WHITE"))
self.figure = Figure()
self.axes = self.figure.add_subplot(111)
self.canvas = FigureCanvas(self, -1, self.figure)
self.sizer = wx.BoxSizer(wx.VERTICAL)
self.sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW)
self.SetSizer(self.sizer)
self.Fit()
self.add_toolbar() # comment this out for no toolbar
self.axes.set_title("NURBS and B-Spline Algorithms: ")
def __init__(self, parent,**kwargs):
wx.Panel.__init__(self,parent,**kwargs)
self.parent = parent
self.figure = matplotlib.figure.Figure()
self.canvas = wxaggb.FigureCanvasWxAgg(self, -1, self.figure)
self.sizer = wx.BoxSizer(wx.VERTICAL)
self.sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW)
self.Bind(wx.EVT_SIZE, self.sizeHandler)
# canvas is your canvas, and root is your parent (Frame, TopLevel, Tk instance etc.)
#self.zoomhandle = wxaggb.NavigationToolbar2WxAgg(self.canvas)
#self.toolbar = wxb.NavigationToolbar2Wx(self.canvas)
#self.toolbar.Realize()
#self.toolbar.update()
self.cmap = matplotlib.cm.RdYlBu_r
def __init__(self, parent):
wx.Control.__init__(self, parent)
main_sizer = wx.FlexGridSizer(cols=2, hgap=0, rows=1, vgap=0)
main_sizer.AddGrowableCol(0)
main_sizer.AddGrowableRow(0)
# create location text control
self.Duration = wx.TextCtrl(self, size=wx.Size(0, -1),
style=wx.TE_PROCESS_ENTER)
self.Duration.Bind(wx.EVT_KEY_DOWN, self.OnDurationChar)
main_sizer.AddWindow(self.Duration, flag=wx.GROW)
# create browse button
self.EditButton = wx.Button(self, label='...', size=wx.Size(30, -1))
self.Bind(wx.EVT_BUTTON, self.OnEditButtonClick, self.EditButton)
main_sizer.AddWindow(self.EditButton, flag=wx.GROW)
self.Bind(wx.EVT_SIZE, self.OnSize)
self.SetSizer(main_sizer)
self.Default = None
def _create_NetworkEditor(self, prnt):
self.NetworkEditor = wx.Panel(
id=-1, parent=prnt, pos=wx.Point(0, 0),
size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL)
NetworkEditorTemplate._init_ctrls(self, self.NetworkEditor)
main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=1, vgap=0)
main_sizer.AddGrowableCol(0)
main_sizer.AddGrowableRow(0)
main_sizer.AddWindow(self.NetworkNodes, 0, border=5, flag=wx.GROW | wx.ALL)
self.NetworkEditor.SetSizer(main_sizer)
return self.NetworkEditor
def __init__(self, *args, **kwargs):
if 'size' not in kwargs:
kwargs['size'] = (360, 240)
super(NewRockTableDialog, self).__init__(*args, **kwargs)
# ico = wx.Icon(r'./icons/plus32x32.ico', wx.BITMAP_TYPE_ICO)
# self.SetIcon(ico)
fgs = wx.BoxSizer(wx.HORIZONTAL)
main_label = wx.StaticText(self, label="Fill up the cell below to create a new rock table.")
name_label = wx.StaticText(self, label="Name Rock Table: ")
# unit_label = wx.StaticText(self, label="Unidade: ")
self.name_ctrl = wx.TextCtrl(self)
# self.unit_ctrl = wx.TextCtrl(self)
fgs.Add(name_label, 0, wx.EXPAND)
fgs.Add(self.name_ctrl, 1, wx.EXPAND)
# fgs.AddGrowableRow(0)
sizer = wx.BoxSizer(wx.VERTICAL)
button_sizer = self.CreateButtonSizer(wx.OK | wx.CANCEL)
sizer.Add(main_label, 1, wx.GROW | wx.EXPAND)
sizer.Add(fgs, 0, wx.EXPAND)
sizer.Add(button_sizer, 0, wx.EXPAND)
self.SetSizer(sizer)
self.name_ctrl.SetFocus()
def __init__(self, *args, **kwargs):
wx.Panel.__init__(self, *args, **kwargs)
## add two buttons:
theButton1 = wx.Button(self, label="Push Me")
theButton1.Bind(wx.EVT_BUTTON, self.onButton)
## add two buttons:
theButton2 = wx.Button(self, label="Push Me Also")
theButton2.Bind(wx.EVT_BUTTON, self.onButton)
## do the layout
## (try uncommenting the other, and see what happens...)
#S = wx.BoxSizer(wx.VERTICAL)
S = wx.BoxSizer(wx.HORIZONTAL)
S.Add(theButton1, 0, wx.GROW | wx.ALL, 4)
S.Add(theButton2, 0, wx.GROW | wx.ALL, 4)
self.SetSizerAndFit(S)
def __init__(self, parent, df, status_bar_callback):
wx.Panel.__init__(self, parent)
self.df_list_ctrl = ListCtrlDataFrame(self, df, status_bar_callback)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.df_list_ctrl, 1, wx.ALL | wx.EXPAND | wx.GROW, 5)
self.SetSizer(sizer)
self.Show()
def __init__(self, parent, columns, df_list_ctrl):
wx.Panel.__init__(self, parent)
self.columns = columns
self.df_list_ctrl = df_list_ctrl
self.list_box = ListBoxDraggable(self, -1, columns, style=wx.LB_EXTENDED)
self.Bind(wx.EVT_LISTBOX, self.update_selected_columns)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.list_box, 1, wx.ALL | wx.EXPAND | wx.GROW, 5)
self.SetSizer(sizer)
self.list_box.SetFocus()
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.ancestor = parent
self.fontpointsize=wx.SystemSettings.GetFont(wx.SYS_SYSTEM_FONT).GetPointSize()
self.colour = wx.Colour(30,70,115, alpha=wx.ALPHA_OPAQUE)
self.canvas = PlotCanvas(self)
if IsNotWX4():
self.canvas.SetInitialSize(size=self.GetClientSize())
self.canvas.SetShowScrollbars(True)
self.canvas.SetEnableZoom(False)
self.canvas.SetFontSizeAxis(point=12)
self.canvas.SetFontSizeTitle(point=12)
self.canvas.SetGridColour(wx.Colour(0, 0, 0))
self.canvas.SetForegroundColour(wx.Colour(0, 0, 0))
self.canvas.SetBackgroundColour(wx.Colour(255, 255, 255))
else:
self.canvas.axesPen = wx.Pen(self.colour, width=1, style=wx.PENSTYLE_SOLID)
self.canvas.SetForegroundColour(wx.Colour(0, 0, 0))
self.canvas.SetBackgroundColour(wx.Colour(255, 255, 255))
self.canvas.enableGrid = (True,True)
self.canvas.fontSizeAxis = self.fontpointsize
self.canvas.fontSizeTitle = self.fontpointsize
self.vbox = wx.BoxSizer(wx.VERTICAL)
self.vbox.Add(self.canvas, 1, flag=wx.LEFT | wx.TOP | wx.GROW)
self.paused = False
self.hbox_btn = wx.BoxSizer(wx.HORIZONTAL)
self.hbox_btn.AddSpacer(20)
self.button_pause =wx.Button(self, label="Pause Graph")
self.Bind(wx.EVT_BUTTON, self.OnClickPauseButton, self.button_pause)
self.hbox_btn.Add(self.button_pause)
self.button_save =wx.Button(self, label="Save Data")
self.Bind(wx.EVT_BUTTON, self.OnClickSaveButton, self.button_save)
self.hbox_btn.Add(self.button_save)
self.vbox.Add(self.hbox_btn, 0, wx.EXPAND)
self.SetSizer(self.vbox)
self.Fit()
self.Show()
self.data_poll_timer = wx.Timer(self)
self.Bind(wx.EVT_TIMER, self.UpdateGraph, self.data_poll_timer)
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, -1, title, size=(550, 350))
self.SetBackgroundColour(wx.NamedColour("WHITE"))
self.figure = Figure()
self.axes = self.figure.add_subplot(111)
self.change_plot(0)
self.canvas = FigureCanvas(self, -1, self.figure)
self.sizer = wx.BoxSizer(wx.VERTICAL)
self.add_buttonbar()
self.sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW)
self.add_toolbar() # comment this out for no toolbar
menuBar = wx.MenuBar()
# File Menu
menu = wx.Menu()
menu.Append(wx.ID_EXIT, "E&xit\tAlt-X", "Exit this simple sample")
menuBar.Append(menu, "&File")
if IS_GTK or IS_WIN:
# Equation Menu
menu = wx.Menu()
for i, (mt, func) in enumerate(functions):
bm = mathtext_to_wxbitmap(mt)
item = wx.MenuItem(menu, 1000 + i, "")
item.SetBitmap(bm)
menu.AppendItem(item)
self.Bind(wx.EVT_MENU, self.OnChangePlot, item)
menuBar.Append(menu, "&Functions")
self.SetMenuBar(menuBar)
self.SetSizer(self.sizer)
self.Fit()
def add_buttonbar(self):
self.button_bar = wx.Panel(self)
self.button_bar_sizer = wx.BoxSizer(wx.HORIZONTAL)
self.sizer.Add(self.button_bar, 0, wx.LEFT | wx.TOP | wx.GROW)
for i, (mt, func) in enumerate(functions):
bm = mathtext_to_wxbitmap(mt)
button = wx.BitmapButton(self.button_bar, 1000 + i, bm)
self.button_bar_sizer.Add(button, 1, wx.GROW)
self.Bind(wx.EVT_BUTTON, self.OnChangePlot, button)
self.button_bar.SetSizer(self.button_bar_sizer)
def __init__(self, parent, name, library, default=None):
wx.Dialog.__init__(self,
name='BrowseValueDialog', parent=parent,
style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER,
title=_('Browse %s values library') % name)
self.staticText1 = wx.StaticText(
label=_('Choose a value for %s:') % name, name='staticText1', parent=self,
pos=wx.Point(0, 0), size=wx.DefaultSize, style=0)
self.ValuesLibrary = wx.TreeCtrl(
name='ValuesLibrary', parent=self, pos=wx.Point(0, 0),
size=wx.Size(400, 200), style=wx.TR_HAS_BUTTONS | wx.TR_SINGLE | wx.SUNKEN_BORDER | wx.TR_HIDE_ROOT | wx.TR_LINES_AT_ROOT)
self.ButtonSizer = self.CreateButtonSizer(wx.OK | wx.CANCEL | wx.CENTRE)
self.Bind(wx.EVT_BUTTON, self.OnOK, id=self.ButtonSizer.GetAffirmativeButton().GetId())
self.flexGridSizer1 = wx.FlexGridSizer(cols=1, hgap=0, rows=3, vgap=10)
self.flexGridSizer1.AddWindow(self.staticText1, 0, border=20, flag=wx.GROW | wx.TOP | wx.LEFT | wx.RIGHT)
self.flexGridSizer1.AddWindow(self.ValuesLibrary, 0, border=20, flag=wx.GROW | wx.LEFT | wx.RIGHT)
self.flexGridSizer1.AddSizer(self.ButtonSizer, 0, border=20, flag=wx.ALIGN_RIGHT | wx.BOTTOM | wx.LEFT | wx.RIGHT)
self.flexGridSizer1.AddGrowableCol(0)
self.flexGridSizer1.AddGrowableRow(1)
self.SetSizer(self.flexGridSizer1)
self.Fit()
root = self.ValuesLibrary.AddRoot("")
self.GenerateValuesLibraryBranch(root, library, default)
def _init_coll_MainSizer_Items(self, parent):
parent.AddWindow(self.staticText1, 0, border=20, flag=wx.TOP | wx.LEFT | wx.RIGHT | wx.GROW)
parent.AddWindow(self.ServicesList, 0, border=20, flag=wx.LEFT | wx.RIGHT | wx.GROW)
parent.AddSizer(self.ButtonGridSizer, 0, border=20, flag=wx.LEFT | wx.RIGHT | wx.BOTTOM | wx.GROW)
def __init__(self, parent):
wx.Dialog.__init__(self, parent, title=_('Create a new action'))
main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10)
main_sizer.AddGrowableCol(0)
main_sizer.AddGrowableRow(0)
infos_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=3, vgap=15)
infos_sizer.AddGrowableCol(1)
main_sizer.AddSizer(infos_sizer, border=20,
flag=wx.GROW | wx.TOP | wx.LEFT | wx.RIGHT)
actionname_label = wx.StaticText(self, label=_('Action Name:'))
infos_sizer.AddWindow(actionname_label, border=4,
flag=wx.ALIGN_CENTER_VERTICAL | wx.TOP)
self.ActionName = wx.TextCtrl(self, size=wx.Size(180, -1))
infos_sizer.AddWindow(self.ActionName, flag=wx.GROW)
language_label = wx.StaticText(self, label=_('Language:'))
infos_sizer.AddWindow(language_label, border=4,
flag=wx.ALIGN_CENTER_VERTICAL | wx.TOP)
self.Language = wx.ComboBox(self, style=wx.CB_READONLY)
infos_sizer.AddWindow(self.Language, flag=wx.GROW)
button_sizer = self.CreateButtonSizer(wx.OK | wx.CANCEL | wx.CENTRE)
self.Bind(wx.EVT_BUTTON, self.OnOK,
button_sizer.GetAffirmativeButton())
main_sizer.AddSizer(button_sizer, border=20,
flag=wx.ALIGN_RIGHT | wx.BOTTOM | wx.LEFT | wx.RIGHT)
self.SetSizer(main_sizer)
for option in GetActionLanguages():
self.Language.Append(_(option))
self.Fit()
self.PouNames = []
self.PouElementNames = []
def __init__(self, parent):
wx.Dialog.__init__(self, parent, title=_('Create a new transition'))
main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10)
main_sizer.AddGrowableCol(0)
main_sizer.AddGrowableRow(0)
infos_sizer = wx.FlexGridSizer(cols=2, hgap=5, rows=3, vgap=10)
infos_sizer.AddGrowableCol(1)
main_sizer.AddSizer(infos_sizer, border=20,
flag=wx.GROW | wx.TOP | wx.LEFT | wx.RIGHT)
transitionname_label = wx.StaticText(self, label=_('Transition Name:'))
infos_sizer.AddWindow(transitionname_label, border=4,
flag=wx.ALIGN_CENTER_VERTICAL | wx.TOP)
self.TransitionName = wx.TextCtrl(self, size=wx.Size(180, -1))
infos_sizer.AddWindow(self.TransitionName, flag=wx.GROW)
language_label = wx.StaticText(self, label=_('Language:'))
infos_sizer.AddWindow(language_label, border=4,
flag=wx.ALIGN_CENTER_VERTICAL | wx.TOP)
self.Language = wx.ComboBox(self, style=wx.CB_READONLY)
infos_sizer.AddWindow(self.Language, flag=wx.GROW)
button_sizer = self.CreateButtonSizer(wx.OK | wx.CANCEL | wx.CENTRE)
self.Bind(wx.EVT_BUTTON, self.OnOK, button_sizer.GetAffirmativeButton())
main_sizer.AddSizer(button_sizer, border=20, flag=wx.ALIGN_RIGHT | wx.BOTTOM)
self.SetSizer(main_sizer)
for language in GetTransitionLanguages():
self.Language.Append(_(language))
self.Fit()
self.PouNames = []
self.PouElementNames = []
def __init__(self, parent):
wx.Dialog.__init__(self, parent, title=_('Edit Duration'))
main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10)
main_sizer.AddGrowableCol(0)
main_sizer.AddGrowableRow(0)
controls_sizer = wx.FlexGridSizer(cols=len(CONTROLS), hgap=10, rows=2, vgap=10)
main_sizer.AddSizer(controls_sizer, border=20,
flag=wx.TOP | wx.LEFT | wx.RIGHT | wx.GROW)
controls = []
for i, (name, label) in enumerate(CONTROLS):
controls_sizer.AddGrowableCol(i)
st = wx.StaticText(self, label=label)
txtctrl = wx.TextCtrl(self, value='0', style=wx.TE_PROCESS_ENTER)
self.Bind(wx.EVT_TEXT_ENTER,
self.GetControlValueTestFunction(txtctrl),
txtctrl)
setattr(self, name, txtctrl)
controls.append((st, txtctrl))
for st, txtctrl in controls:
controls_sizer.AddWindow(st, flag=wx.GROW)
for st, txtctrl in controls:
controls_sizer.AddWindow(txtctrl, flag=wx.GROW)
button_sizer = self.CreateButtonSizer(wx.OK | wx.CANCEL | wx.CENTRE)
self.Bind(wx.EVT_BUTTON, self.OnOK, button_sizer.GetAffirmativeButton())
main_sizer.AddSizer(button_sizer, border=20,
flag=wx.ALIGN_RIGHT | wx.BOTTOM | wx.LEFT | wx.RIGHT)
self.SetSizer(main_sizer)
self.Fit()
self.Days.SetFocus()
def _init_coll_MainSizer_Items(self, parent):
parent.AddSizer(self.HeaderSizer, 0, border=0, flag=wx.GROW)
parent.AddWindow(self.SearchResultsTree, 1, border=0, flag=wx.GROW)
def AddSizerParams(self, parent, sizer, params):
for idx, (name, label) in enumerate(params):
border = 0
if idx == 0:
border |= wx.TOP
elif idx == len(params) - 1:
border |= wx.BOTTOM
st = wx.StaticText(parent, label=label)
sizer.AddWindow(st, border=10,
flag=wx.ALIGN_CENTER_VERTICAL | border | wx.LEFT)
tc = wx.TextCtrl(parent, style=wx.TE_PROCESS_ENTER)
setattr(self, name, tc)
callback = self.GetTextCtrlChangedFunction(tc, name)
self.Bind(wx.EVT_TEXT_ENTER, callback, tc)
tc.Bind(wx.EVT_KILL_FOCUS, callback)
sizer.AddWindow(tc, border=10,
flag=wx.GROW | border | wx.RIGHT)
def RefreshGraphicsSizer(self):
self.GraphicsSizer.Clear()
for panel in self.GraphicPanels:
self.GraphicsSizer.AddWindow(panel, flag=wx.GROW)
self.GraphicsSizer.Layout()
self.RefreshGraphicsWindowScrollbars()
def __init__(self):
wx.Frame.__init__(self, None, -1, 'CanvasFrame', size=(550, 350))
color = wx.Colour("WHITE")
self.SetBackgroundColour(color)
self.figure = Figure()
self.axes = self.figure.add_subplot(111)
t = arange(0.0, 3.0, 0.01)
s = sin(2 * pi * t)
self.axes.plot(t, s)
self.canvas = FigureCanvas(self, -1, self.figure)
self.sizer = wx.BoxSizer(wx.VERTICAL)
self.sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW)
self.SetSizerAndFit(self.sizer)
self.add_toolbar()
def __init__(self, title='Snapshot Printer'):
wx.Frame.__init__(self, None, title=title,
size=(650,400))
self.panel = wx.Panel(self)
self.printer = HtmlEasyPrinting(
name='Printing', parentWindow=None)
self.html = HtmlWindow(self.panel)
self.html.SetRelatedFrame(self, self.GetTitle())
if not os.path.exists('screenshot.htm'):
self.createHtml()
self.html.LoadPage('screenshot.htm')
pageSetupBtn = wx.Button(self.panel, label='Page Setup')
printBtn = wx.Button(self.panel, label='Print')
cancelBtn = wx.Button(self.panel, label='Cancel')
self.Bind(wx.EVT_BUTTON, self.onSetup, pageSetupBtn)
self.Bind(wx.EVT_BUTTON, self.onPrint, printBtn)
self.Bind(wx.EVT_BUTTON, self.onCancel, cancelBtn)
sizer = wx.BoxSizer(wx.VERTICAL)
btnSizer = wx.BoxSizer(wx.HORIZONTAL)
sizer.Add(self.html, 1, wx.GROW)
btnSizer.Add(pageSetupBtn, 0, wx.ALL, 5)
btnSizer.Add(printBtn, 0, wx.ALL, 5)
btnSizer.Add(cancelBtn, 0, wx.ALL, 5)
sizer.Add(btnSizer)
self.panel.SetSizer(sizer)
self.panel.SetAutoLayout(True)
def __init__(self, *args, **kwargs):
if 'size' not in kwargs:
kwargs['size'] = (360, 240)
super(NewPartitionDialog, self).__init__(*args, **kwargs)
# ico = wx.Icon(r'./icons/plus32x32.ico', wx.BITMAP_TYPE_ICO)
# self.SetIcon(ico)
fgs = wx.BoxSizer(wx.HORIZONTAL)
main_label = wx.StaticText(self, label="Fill up the cell below to create a new partition.")
name_label = wx.StaticText(self, label="Name Partition: ")
# unit_label = wx.StaticText(self, label="Unidade: ")
self.name_ctrl = wx.TextCtrl(self)
# self.unit_ctrl = wx.TextCtrl(self)
fgs.Add(name_label, 0, wx.EXPAND)
fgs.Add(self.name_ctrl, 1, wx.EXPAND)
# fgs.AddGrowableRow(0)
sizer = wx.BoxSizer(wx.VERTICAL)
button_sizer = self.CreateButtonSizer(wx.OK | wx.CANCEL)
#if _iswxphoenix:
sizer.Add(main_label, 1, wx.GROW | wx.EXPAND)
sizer.Add(fgs, 0, wx.EXPAND)
sizer.Add(button_sizer, 0, wx.EXPAND)
#else:
# sizer.AddSizer(fgs, proportion=1, flag=wx.EXPAND)
# sizer.AddSizer(button_sizer, proportion=0, flag=wx.EXPAND)
# self.
self.SetSizer(sizer)
self.name_ctrl.SetFocus()
def _init_coll_flexGridSizer1_Items(self, parent):
# generated method, don't edit
parent.AddWindow(self.TDisplay, 0, border=0, flag=wx.GROW | wx.EXPAND)
parent.AddWindow(self.TInput, 1, border=1,
flag=wx.GROW | wx.RIGHT | wx.LEFT | wx.EXPAND | wx.ALIGN_BOTTOM)
def __init__(self, *args, **kwargs):
kwargs.setdefault('title', "Calculator")
wx.Frame.__init__(self, *args, **kwargs)
self.calcPanel = Calculator(self)
# put the panel on -- in a sizer to give it some space
S = wx.BoxSizer(wx.VERTICAL)
S.Add(self.calcPanel, 1, wx.GROW|wx.ALL, 10)
self.SetSizerAndFit(S)
self.CenterOnScreen()
def __init__(self, *args, **kwargs):
wx.Panel.__init__(self, *args, **kwargs)
## add a button:
theButton1 = wx.Button(self, label="Push Me")
theButton1.Bind(wx.EVT_BUTTON, self.onButton)
## add another button:
theButton2 = wx.Button(self, label="Push Me Also")
theButton2.Bind(wx.EVT_BUTTON, self.onButton)
## do the layout
buttonSizer = wx.BoxSizer(wx.VERTICAL)
buttonSizer.Add((1,1), 1) # stretchable space
buttonSizer.Add(theButton1, 0, wx.GROW | wx.ALL, 4)
buttonSizer.Add(theButton2, 0, wx.GROW | wx.ALL, 4)
buttonSizer.Add((1,1), 3) # stretchable space
## need another sizer to get the horizonal placement right:
mainSizer = wx.BoxSizer(wx.HORIZONTAL)
mainSizer.Add((1,1), 1) # stretchable space
mainSizer.Add(buttonSizer, 0, wx.GROW) # the sizer with the buttons in it
mainSizer.Add((1,1), 1) # stretchable space
self.SetSizer(mainSizer)
def __init__(self, *args, **kwargs):
wx.Panel.__init__(self, *args, **kwargs)
## add a button:
theButton1 = wx.Button(self, label="Push Me")
theButton1.Bind(wx.EVT_BUTTON, self.onButton)
## add a static text lable:
label1 = wx.StaticText(self, label="Input Box:")
## add a text control:
self.inTextControl = wx.TextCtrl(self)
## add another button:
theButton2 = wx.Button(self, label="GetData")
theButton2.Bind(wx.EVT_BUTTON, self.onGetData)
## add a static text lable:
label2 = wx.StaticText(self, label="Output Box:")
## and another text control:
self.outTextControl = wx.TextCtrl(self, style=wx.TE_READONLY)
## do the layout
buttonSizer = wx.BoxSizer(wx.VERTICAL)
buttonSizer.Add(theButton1, 0, wx.GROW | wx.ALL, 4)
buttonSizer.Add(label1, 0, wx.ALIGN_LEFT | wx.TOP, 4)
buttonSizer.Add(self.inTextControl, 0, wx.GROW | wx.ALL, 4)
buttonSizer.Add((150, 10))
buttonSizer.Add(theButton2, 0, wx.GROW | wx.ALL, 4)
buttonSizer.Add(label2, 0, wx.ALIGN_LEFT | wx.TOP, 4)
buttonSizer.Add(self.outTextControl, 0, wx.GROW | wx.ALL, 4)
## need another sizer to get the horizonal placement right:
mainSizer = wx.BoxSizer(wx.HORIZONTAL)
mainSizer.Add((1,1), 1) # stretchable space
mainSizer.Add(buttonSizer, 0, wx.ALIGN_TOP) # the sizer with the buttons in it
mainSizer.Add((1,1), 1) # stretchable space
self.SetSizer(mainSizer)
def _build(self):
"""
Building widgets and setting static widget data.
"""
parent = wx.Panel(self, -1)
sizer0 = wx.BoxSizer(wx.VERTICAL)
sizer0.Add(self._buildTopBar(parent), 0, wx.ALIGN_LEFT|wx.GROW, 5)
splitter = wx.SplitterWindow(parent, -1)
#- TOP PART --------------------------------------------------------#
topParent = wx.Panel(splitter, -1)
topSizer = wx.BoxSizer(wx.VERTICAL)
self.treeCtrlItems = wx.TreeCtrl(topParent, -1,
style = wx.TR_TWIST_BUTTONS|wx.TR_LINES_AT_ROOT|wx.TR_HAS_BUTTONS|wx.TR_HIDE_ROOT|wx.TR_MULTIPLE)
topSizer.Add(self.treeCtrlItems, 1, wx.EXPAND, 5)
topParent.SetAutoLayout( True )
topParent.SetSizer(topSizer )
topSizer.Fit(topParent)
topSizer.SetSizeHints(topParent)
#-------------------------------------------------------------------#
#- BOTTOM PART -----------------------------------------------------#
bottomParent = wx.Panel(splitter,-1)
bottomSizer = wx.BoxSizer(wx.VERTICAL)
self.txtCtrlLog=wx_StdoutLog(bottomParent, -1, "",
size= wx.Size(-1, 10),
style=wx.TE_MULTILINE|wx.TE_READONLY|wx.TE_RICH)
bottomSizer.Add(self.txtCtrlLog, 1, wx.EXPAND, 5)
bottomParent.SetAutoLayout( True )
bottomParent.SetSizer(bottomSizer )
bottomSizer.Fit(bottomParent)
bottomSizer.SetSizeHints(bottomParent)
#-------------------------------------------------------------------#
splitter.SplitHorizontally(topParent,bottomParent, -100)
sizer0.Add(splitter, 1, wx.EXPAND|wx.ALIGN_CENTRE, 5)
self.buttonClose = wx.Button(parent, -1, 'Close') # buttonClose
sizer0.Add(self.buttonClose, 0, wx.ALIGN_CENTRE|wx.ALL, 5)
parent.SetAutoLayout( True )
parent.SetSizer( sizer0 )
sizer0.Fit( parent)
sizer0.SetSizeHints( parent)
def __init__(
self, parent, ID, title, size=wx.DefaultSize, pos=wx.DefaultPosition,
style=wx.DEFAULT_DIALOG_STYLE, fields=None, data=None,
):
wx.Dialog.__init__ (self, parent, ID, title, pos, size, style)
sizer = wx.BoxSizer(wx.VERTICAL)
self.textctrls = {}
for field in fields:
box = wx.BoxSizer(wx.HORIZONTAL)
label = wx.StaticText(self, -1, field)
label.SetHelpText("This is the help text for the label")
box.Add(label, 1, wx.ALIGN_CENTRE|wx.ALL, 5)
text = wx.TextCtrl(self, -1, "", size=(80,-1))
text.SetHelpText("Here's some help text for field #1")
if field in data:
text.SetValue(repr(data[field]))
box.Add(text, 1, wx.ALIGN_CENTRE|wx.ALL, 1)
sizer.Add(box, 0, wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 1)
self.textctrls[field] = text
line = wx.StaticLine(self, -1, size=(20,-1), style=wx.LI_HORIZONTAL)
sizer.Add(line, 0, wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.RIGHT|wx.TOP, 5)
btnsizer = wx.StdDialogButtonSizer()
btn = wx.Button(self, wx.ID_OK)
btn.SetHelpText("The OK button completes the dialog")
btn.SetDefault()
btnsizer.AddButton(btn)
btn = wx.Button(self, wx.ID_CANCEL)
btn.SetHelpText("The Cancel button cancels the dialog. (Cool, huh?)")
btnsizer.AddButton(btn)
btnsizer.Realize()
sizer.Add(btnsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5)
self.SetSizer(sizer)
sizer.Fit(self)
def __init__(self, parent, controller, tagname, initial=False):
"""
Constructor
@param parent: Parent wx.Window of dialog for modal
@param controller: Reference to project controller
@param tagname: Tagname of project POU edited
@param initial: True if step is initial (default: False)
"""
BlockPreviewDialog.__init__(self, parent, controller, tagname,
title=_('Edit Step'))
# Init common sizers
self._init_sizers(2, 0, 6, None, 2, 1)
# Create label for SFC step name
name_label = wx.StaticText(self, label=_('Name:'))
self.LeftGridSizer.AddWindow(name_label, flag=wx.GROW)
# Create text control for defining SFC step name
self.StepName = wx.TextCtrl(self)
self.Bind(wx.EVT_TEXT, self.OnNameChanged, self.StepName)
self.LeftGridSizer.AddWindow(self.StepName, flag=wx.GROW)
# Create label for SFC step connectors
connectors_label = wx.StaticText(self, label=_('Connectors:'))
self.LeftGridSizer.AddWindow(connectors_label, flag=wx.GROW)
# Create check boxes for defining connectors available on SFC step
self.ConnectorsCheckBox = {}
for name, label in [("input", _("Input")),
("output", _("Output")),
("action", _("Action"))]:
check_box = wx.CheckBox(self, label=label)
if name == "output" or (name == "input" and not initial):
check_box.SetValue(True)
self.Bind(wx.EVT_CHECKBOX, self.OnConnectorsChanged, check_box)
self.LeftGridSizer.AddWindow(check_box, flag=wx.GROW)
self.ConnectorsCheckBox[name] = check_box
# Add preview panel and associated label to sizers
self.RightGridSizer.AddWindow(self.PreviewLabel, flag=wx.GROW)
self.RightGridSizer.AddWindow(self.Preview, flag=wx.GROW)
# Add buttons sizer to sizers
self.MainSizer.AddSizer(
self.ButtonSizer, border=20,
flag=wx.ALIGN_RIGHT | wx.BOTTOM | wx.LEFT | wx.RIGHT)
# Save flag that indicates that step is initial
self.Initial = initial
# Set default name for step
self.StepName.ChangeValue(controller.GenerateNewName(
tagname, None, "Step%d", 0))
self.Fit()
# Step name text control is default control having keyboard focus
self.StepName.SetFocus()