def __init__( self, parent ):
wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = u"Encrypted Files", pos = wx.DefaultPosition, size = wx.Size( 600,400 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
BodySizer = wx.BoxSizer( wx.VERTICAL )
self.m_panel4 = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
TextCtrlSizer = wx.BoxSizer( wx.VERTICAL )
self.EncryptedFilesTextCtrl = wx.TextCtrl( self.m_panel4, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.TE_DONTWRAP|wx.TE_MULTILINE|wx.TE_READONLY )
TextCtrlSizer.Add( self.EncryptedFilesTextCtrl, 1, wx.ALL|wx.EXPAND, 5 )
self.m_panel4.SetSizer( TextCtrlSizer )
self.m_panel4.Layout()
TextCtrlSizer.Fit( self.m_panel4 )
BodySizer.Add( self.m_panel4, 1, wx.EXPAND |wx.ALL, 5 )
self.SetSizer( BodySizer )
self.Layout()
self.Centre( wx.BOTH )
python类BoxSizer()的实例源码
def __init__(self):
wx.Frame.__init__(self, None,
pos=wx.DefaultPosition, size=wx.Size(450, 100),
style=wx.MINIMIZE_BOX | wx.SYSTEM_MENU | wx.CAPTION |
wx.CLOSE_BOX | wx.CLIP_CHILDREN,
title="BRUNO")
panel = wx.Panel(self)
ico = wx.Icon('boy.ico', wx.BITMAP_TYPE_ICO)
self.SetIcon(ico)
my_sizer = wx.BoxSizer(wx.VERTICAL)
lbl = wx.StaticText(panel,
label="Bienvenido Sir. How can I help you?")
my_sizer.Add(lbl, 0, wx.ALL, 5)
self.txt = wx.TextCtrl(panel, style=wx.TE_PROCESS_ENTER,
size=(400, 30))
self.txt.SetFocus()
self.txt.Bind(wx.EVT_TEXT_ENTER, self.OnEnter)
my_sizer.Add(self.txt, 0, wx.ALL, 5)
panel.SetSizer(my_sizer)
self.Show()
speak.Speak('''Welcome back Sir, Broono at your service.''')
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title, size=(400, 250))
panel = wx.Panel(self, wx.ID_ANY)
panel.SetBackgroundColour('#000000')
text = """\n \t \t \t E-Z Music Downloader v1.0 \n \n Type in the song you want to downloading the the first box like so: "Song name by Artist" make sure you have both the artist and the song name in the query, in the second box type in what you want to name the Mp3. Next select High quality or Medium quality. High quality creates a larger file, therefore takes longer to convert. The status bar will show the actions the program is doing, once the status bar says done you can download another. To change the directory in which the song downloads, go to options in the menu bar and select "ChangeDownloadDirectory". \n \n \t \t Thanks for chosing E-Z Musick Downloader! \n \n \t (Songs converted using http://www.convertmemp3.com )"""
txt = wx.StaticText(panel, label=text)
txt.SetForegroundColour('#FFFFFF')
sizer = wx.BoxSizer(wx.HORIZONTAL)
sizer.Add(txt, 1, wx.EXPAND|wx.ALIGN_CENTER, 5)
panel.SetSizer(sizer)
self.Show()
self.Centre()
GUI_wxPython.py 文件源码
项目:Python-GUI-Programming-Cookbook-Second-Edition
作者: PacktPublishing
项目源码
文件源码
阅读 19
收藏 0
点赞 0
评论 0
def addCheckBoxes(self):
# Regular Box Sizer
boxSizerH = wx.BoxSizer(wx.HORIZONTAL)
chk1 = wx.CheckBox(self.panel, label='Disabled')
chk1.SetValue(True)
chk1.Disable()
boxSizerH.Add(chk1)
chk2 = wx.CheckBox(self.panel, label='UnChecked')
boxSizerH.Add(chk2, flag=wx.LEFT, border=10)
chk3 = wx.CheckBox(self.panel, label='Toggle')
boxSizerH.Add(chk3, flag=wx.LEFT, border=10)
chk3.SetValue(True)
# Add Regular Box Sizer to StaticBox sizer
self.statBoxSizerV.Add(boxSizerH, flag=wx.LEFT, border=10)
self.statBoxSizerV.Add((0, 8))
#----------------------------------------------------------
GUI_wxPython.py 文件源码
项目:Python-GUI-Programming-Cookbook-Second-Edition
作者: PacktPublishing
项目源码
文件源码
阅读 21
收藏 0
点赞 0
评论 0
def addFileWidgets(self):
boxSizerH = wx.BoxSizer(wx.HORIZONTAL)
boxSizerH.Add(wx.Button(self.panel, label='Browse to File...'))
boxSizerH.Add(wx.TextCtrl( self.panel, size=(174, -1), value= "Z:\\" ))
boxSizerH1 = wx.BoxSizer(wx.HORIZONTAL)
boxSizerH1.Add(wx.Button(self.panel, label='Copy File To: '))
boxSizerH1.Add(wx.TextCtrl( self.panel, size=(174, -1), value= "Z:\\Backup" ))
boxSizerV = wx.BoxSizer(wx.VERTICAL)
boxSizerV.Add(boxSizerH)
boxSizerV.Add(boxSizerH1)
self.statBoxSizerMgrV.Add( boxSizerV, 1, wx.ALL )
#====================================================================
import_OpenGL_cube_and_cone.py 文件源码
项目:Python-GUI-Programming-Cookbook-Second-Edition
作者: PacktPublishing
项目源码
文件源码
阅读 27
收藏 0
点赞 0
评论 0
def __init__(self, parent):
wx.Panel.__init__(self, parent, -1)
box = wx.BoxSizer(wx.VERTICAL)
box.Add((20, 30))
keys = buttonDefs.keys()
for k in keys:
text = buttonDefs[k][1]
btn = wx.Button(self, k, text)
box.Add(btn, 0, wx.ALIGN_CENTER|wx.ALL, 15)
self.Bind(wx.EVT_BUTTON, self.OnButton, btn)
# put a GLCanvas on the wx.Panel
c = CubeCanvas(self)
c.SetMinSize((200, 200))
box.Add(c, 0, wx.ALIGN_CENTER|wx.ALL, 15)
c = ConeCanvas(self)
c.SetMinSize((200, 200))
box.Add(c, 0, wx.ALIGN_CENTER|wx.ALL, 15)
self.SetAutoLayout(True)
self.SetSizer(box)
def createWidgets(self):
# Main window resizer object
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(topPanel(self, self.SIM), 1, wx.ALL|wx.EXPAND, 5)
sizer.Add(bottomPanel(self, self.SIM), 1, wx.ALL|wx.EXPAND, 5)
#buttons = wx.BoxSizer(wx.HORIZONTAL)
#buttons.Add(wx.Button(self, ID_BUTTON_CHANGE_PIN, "Okay"), 1, wx.ALIGN_LEFT | wx.ALL, 20)
#buttons.Add(wx.Button(self, wxID_CANCEL, "Cancel"), 1, wx.ALIGN_RIGHT | wx.ALL, 20)
#sizer.Add(buttons, 1, wx.ALL)
self.SetSizer(sizer)
self.SetAutoLayout(1)
sizer.Fit(self)
self.Layout()
wx.EVT_CLOSE(self, self.closeWindow)
def __init__(self, parent, browser,model = None):
wx.Panel.__init__(self, parent, -1)
panel = wx.Panel(self, -1)
self.dvc = dv.DataViewCtrl(self,
style=wx.BORDER_THEME
| dv.DV_ROW_LINES #
| dv.DV_VERT_RULES
| dv.DV_MULTIPLE
)
self.Sizer = wx.BoxSizer(wx.VERTICAL)
self.Sizer.Add(self.dvc, 1, wx.EXPAND)
self.browser = browser
self.WindowsSize = wx.GetClientDisplayRect()
if self.browser:
self.browser.set_window_size(self.WindowsSize[2]/2, (self.WindowsSize[3]))
self.browser.set_window_position(self.WindowsSize[2]/2, 0)
self.dvc.Bind(dv.EVT_DATAVIEW_ITEM_ACTIVATED, self.OnOpenGooleChrome)
self.dvc.Bind(dv.EVT_DATAVIEW_SELECTION_CHANGED, self.OnSelectionChanged)
self.url = ""
def __init__(self, parent,nbresult,lf,rt):
wx.Panel.__init__(self, parent, -1)
panel = wx.Panel(self, -1)
self.nbResult = nbresult
self.lf = lf
self.rt = rt
hbox1 = wx.BoxSizer(wx.HORIZONTAL)
self.UrlTxtCtrl = wx.TextCtrl(self, -1, "http://news.china.com.cn", style = wx.TE_PROCESS_ENTER)
btnStart = wx.Button(self, -1, "?", (20,20))
#¼
#Onstart = frame.OnStart
self.Bind(wx.EVT_BUTTON, self.OnStart, btnStart)
hbox1.Add(self.UrlTxtCtrl, 1, wx.EXPAND)
hbox1.Add(btnStart,0, wx.EXPAND)
self.SetSizer(hbox1)
def __init__(self, parent,start):
wx.Panel.__init__(self, parent, -1)
self.start = start
panel = wx.Panel(self, -1)
hbox2 = wx.BoxSizer(wx.HORIZONTAL)
self.NumTxtCtrl = wx.TextCtrl(self, -1, " ?v0.1.4", style = wx.TE_PROCESS_ENTER|wx.TE_READONLY)
self.severule = wx.Button(self, -1, "" ,(20,20))
self.btnClear = wx.Button(self, -1, "?" ,(20,20))
self.btnParseURL = wx.Button(self, -1, "URL" ,(20,20))
self.btnParseContent = wx.Button(self, -1, "?" ,(20,20))
#sizer
hbox2.Add(self.NumTxtCtrl,1, wx.EXPAND)
hbox2.Add(self.severule,0, wx.EXPAND)
hbox2.Add(self.btnClear,0, wx.EXPAND)
hbox2.Add(self.btnParseURL,0, wx.EXPAND)
hbox2.Add(self.btnParseContent,0, wx.EXPAND)
self.SetSizer(hbox2)
##?¼
self.Bind(wx.EVT_BUTTON, self.start.OnRemoveCache, self.btnClear)
self.Bind(wx.EVT_BUTTON, self.start.OnSeveResult, self.severule)
self.Bind(wx.EVT_BUTTON, self.start.OnStart, self.btnParseURL)
self.Bind(wx.EVT_BUTTON, self.start.OnStart, self.btnParseContent)
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)
def __init__(self, parent=None, default_url=""):
wx.Panel.__init__(self, parent)
self._sizer = wx.BoxSizer(wx.HORIZONTAL)
self._url = wx.TextCtrl(self)
self._url.Bind(wx.EVT_KILL_FOCUS, self._field_changed)
self._url.SetValue(default_url)
self._status_label = ProcessingPlaceholderText(self)
label = wx.StaticText(self, label="Server URL")
label.SetToolTipString("URL for the IRIDA server API.")
self._sizer.Add(label, flag=wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, border=5, proportion=0)
self._sizer.Add(self._url, flag=wx.EXPAND, proportion=1)
self._sizer.Add(self._status_label, flag=wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.RIGHT, border=5, proportion=0)
self.SetSizerAndFit(self._sizer)
self.Layout()
self.Bind(wx.EVT_CLOSE, self._on_close)
pub.subscribe(self._status_label.SetError, APIConnectorTopics.connection_error_url_topic)
pub.subscribe(self._status_label.SetSuccess, APIConnectorTopics.connection_success_topic)
pub.subscribe(self._status_label.SetSuccess, APIConnectorTopics.connection_success_valid_url)
def __init__(self, parent=None, first_run=False):
wx.Dialog.__init__(self, parent, title="Settings", style=wx.DEFAULT_DIALOG_STYLE)
self._first_run = first_run
self._sizer = wx.BoxSizer(wx.VERTICAL)
self._defaults = {}
self._sizer.Add(URLEntryPanel(self, default_url=read_config_option("baseurl")), flag=wx.EXPAND | wx.ALL, border=5)
authorization_sizer = wx.BoxSizer(wx.HORIZONTAL)
authorization_sizer.Add(ClientDetailsPanel(self, default_client_id=read_config_option("client_id"), default_client_secret=read_config_option("client_secret")), flag=wx.EXPAND | wx.RIGHT, border=2, proportion=1)
authorization_sizer.Add(UserDetailsPanel(self, default_user=read_config_option("username"), default_pass=read_config_option("password")), flag=wx.EXPAND | wx.LEFT, border=2, proportion=1)
self._sizer.Add(authorization_sizer, flag=wx.EXPAND | wx.ALL, border=5)
self._sizer.Add(PostProcessingTaskPanel(self, default_post_process=read_config_option("completion_cmd")), flag=wx.EXPAND | wx.ALL, border=5)
self._sizer.Add(DefaultDirectoryPanel(self, default_directory=read_config_option("default_dir"), monitor_directory=read_config_option("monitor_default_dir", expected_type=bool)), flag=wx.EXPAND | wx.ALL, border=5)
self._sizer.Add(self.CreateSeparatedButtonSizer(flags=wx.OK), flag=wx.EXPAND | wx.ALL, border=5)
self.SetSizerAndFit(self._sizer)
self.Layout()
pub.subscribe(self._field_changed, SettingsDialog.field_changed_topic)
self.Bind(wx.EVT_CLOSE, self._on_close)
self.Bind(wx.EVT_BUTTON, self._on_close, id=wx.ID_OK)
threading.Thread(target=connect_to_irida).start()
def __init__(self, parent):
"""Initialize the UploaderAppPanel.
Args:
parent: the parent Window for this panel.
"""
wx.Panel.__init__(self, parent)
self._parent = parent
self._discovered_runs = []
self._selected_directory = None
self._sizer = wx.BoxSizer(wx.VERTICAL)
# topics to handle from directory scanning
pub.subscribe(self._add_run, DirectoryScannerTopics.run_discovered)
pub.subscribe(self._finished_loading, DirectoryScannerTopics.finished_run_scan)
pub.subscribe(self._sample_sheet_error, DirectoryScannerTopics.garbled_sample_sheet)
pub.subscribe(self._sample_sheet_error, DirectoryScannerTopics.missing_files)
# topics to handle when settings have changed in the settings frame
pub.subscribe(self._settings_changed, SettingsDialog.settings_closed_topic)
# topics to handle when a directory is selected by File > Open
pub.subscribe(self._directory_selected, UploaderAppFrame.directory_selected_topic)
self._settings_changed()
self.SetSizerAndFit(self._sizer)
def _post_processing_task_started(self):
"""Show a 'processing' message on the UI while the post processing task is executing."""
pub.unsubscribe(self._post_processing_task_started, RunUploaderTopics.started_post_processing)
pub.subscribe(self._post_processing_task_completed, RunUploaderTopics.finished_post_processing)
pub.subscribe(self._post_processing_task_failed, RunUploaderTopics.failed_post_processing)
logging.info("Post-processing started, updating UI.")
self.Freeze()
self._post_processing_sizer = wx.BoxSizer(wx.HORIZONTAL)
self._post_processing_placeholder = ProcessingPlaceholderText(self)
self._post_processing_placeholder.SetFont(wx.Font(pointSize=18, family=wx.FONTFAMILY_DEFAULT, style=wx.NORMAL, weight=wx.FONTWEIGHT_BOLD, face="Segoe UI Symbol"))
self._post_processing_text = wx.StaticText(self, label="Executing post-processing task.")
self._post_processing_text.SetFont(wx.Font(18, wx.DEFAULT, wx.NORMAL, wx.BOLD))
self._post_processing_text.Wrap(350)
self._post_processing_text.SetToolTipString("Executing command `{}`.".format(read_config_option("completion_cmd")))
self._post_processing_sizer.Add(self._post_processing_text, flag=wx.RIGHT, border=5, proportion=1)
self._post_processing_sizer.Add(self._post_processing_placeholder, flag=wx.LEFT, border=5, proportion=0)
self._sizer.Insert(0, self._post_processing_sizer, flag=wx.EXPAND | wx.ALL, border=5)
self.Layout()
self.Thaw()
def __init__(self, parent, message, caption, choices=[]):
wx.Dialog.__init__(self, parent, -1)
self.SetTitle(caption)
sizer = wx.BoxSizer(wx.VERTICAL)
self.message = wx.StaticText(self, -1, message)
self.clb = wx.CheckListBox(self, -1, choices=choices)
self.chbox = wx.CheckBox(self, -1, 'Select all')
self.btns = self.CreateSeparatedButtonSizer(wx.OK | wx.CANCEL)
self.Bind(wx.EVT_CHECKBOX, self.EvtChBox, self.chbox)
sizer.Add(self.message, 0, wx.ALL | wx.EXPAND, 5)
sizer.Add(self.clb, 1, wx.ALL | wx.EXPAND, 5)
sizer.Add(self.chbox, 0, wx.ALL | wx.EXPAND, 5)
sizer.Add(self.btns, 0, wx.ALL | wx.EXPAND, 5)
self.SetSizer(sizer)
# self.Fit()
def initNTrial(self):
trialSizer = wx.BoxSizer(orient=wx.HORIZONTAL)
trainTrialControlBox = widgets.ControlBox(self, label='Train Trials', orient=wx.VERTICAL)
self.trainTrialSpinCtrl = wx.SpinCtrl(self, #style=wx.SP_WRAP,
value=str(self.pg.nTrainTrial), min=2, max=100)
self.Bind(wx.EVT_SPINCTRL, self.setNTrainTrial, self.trainTrialSpinCtrl)
self.offlineControls += [self.trainTrialSpinCtrl]
trainTrialControlBox.Add(self.trainTrialSpinCtrl, proportion=1,
flag=wx.ALL | wx.EXPAND, border=10)
trialSizer.Add(trainTrialControlBox, proportion=1,
flag=wx.LEFT | wx.BOTTOM | wx.RIGHT | wx.EXPAND, border=10)
testTrialControlBox = widgets.ControlBox(self, label='Test Trials', orient=wx.VERTICAL)
self.testTrialSpinCtrl = wx.SpinCtrl(self, #style=wx.SP_WRAP,
value=str(self.pg.nTestTrial), min=1, max=100)
self.Bind(wx.EVT_SPINCTRL, self.setNTestTrial, self.testTrialSpinCtrl)
self.offlineControls += [self.testTrialSpinCtrl]
testTrialControlBox.Add(self.testTrialSpinCtrl, proportion=1,
flag=wx.ALL | wx.EXPAND, border=10)
trialSizer.Add(testTrialControlBox, proportion=1,
flag=wx.BOTTOM | wx.RIGHT | wx.EXPAND, border=10)
self.sizer.Add(trialSizer, proportion=0, flag=wx.EXPAND)
def initGain(self):
gainSizer = wx.BoxSizer(orient=wx.VERTICAL)
gainControlBox = widgets.ControlBox(self, label='Gain', orient=wx.HORIZONTAL)
self.gainText = wx.StaticText(self, label='%0.2f' % self.pg.gain)
gainTextSizer = wx.BoxSizer(orient=wx.VERTICAL)
gainTextSizer.Add(self.gainText, proportion=1, flag=wx.EXPAND)
self.gainSlider = wx.Slider(self, style=wx.SL_HORIZONTAL,
value=int(self.pg.gain*100.0), minValue=1, maxValue=100)
self.Bind(wx.EVT_SLIDER, self.setGain, self.gainSlider)
gainControlBox.Add(gainTextSizer, proportion=0, flag=wx.ALL | wx.EXPAND, border=10)
gainControlBox.Add(self.gainSlider, proportion=1, flag=wx.ALL | wx.EXPAND, border=10)
gainSizer.Add(gainControlBox,
flag=wx.LEFT | wx.BOTTOM | wx.RIGHT | wx.EXPAND, border=10)
self.sizer.Add(gainSizer, proportion=0, flag=wx.EXPAND)
def initControls(self):
# slider for controlling the length of the spans in Welch's method
# since sliders are int, we use divide by 4 to get float value
spanControlBox = widgets.ControlBox(self, label='Span', orient=wx.HORIZONTAL)
self.spanText = wx.StaticText(self, label='%4.2f(s)' % self.pg.welchConfig.span)
spanTextSizer = wx.BoxSizer(orient=wx.VERTICAL)
spanTextSizer.Add(self.spanText, proportion=1,
flag=wx.LEFT | wx.RIGHT | wx.EXPAND, border=8)
self.spanSlider = wx.Slider(self, style=wx.SL_HORIZONTAL,
value=int(self.pg.welchConfig.span*4), minValue=1, maxValue=12)
spanControlBox.Add(spanTextSizer, proportion=0, flag=wx.TOP, border=10)
spanControlBox.Add(self.spanSlider, proportion=1,
flag=wx.ALL | wx.EXPAND, border=10)
self.Bind(wx.EVT_SLIDER, self.setSpan, self.spanSlider)
self.sizer.Add(spanControlBox, proportion=0,
flag=wx.LEFT | wx.BOTTOM | wx.RIGHT | wx.EXPAND, border=10)
def initNTrial(self):
trialSizer = wx.BoxSizer(orient=wx.HORIZONTAL)
trainTrialControlBox = widgets.ControlBox(self, label='Train Trials', orient=wx.VERTICAL)
self.trainTrialSpinCtrl = wx.SpinCtrl(self, #style=wx.SP_WRAP,
value=str(self.pg.nTrainTrial), min=2, max=100)
self.Bind(wx.EVT_SPINCTRL, self.setNTrainTrial, self.trainTrialSpinCtrl)
self.offlineControls += [self.trainTrialSpinCtrl]
trainTrialControlBox.Add(self.trainTrialSpinCtrl, proportion=1,
flag=wx.ALL | wx.EXPAND, border=10)
trialSizer.Add(trainTrialControlBox, proportion=1,
flag=wx.LEFT | wx.BOTTOM | wx.RIGHT | wx.EXPAND, border=10)
testTrialControlBox = widgets.ControlBox(self, label='Test Trials', orient=wx.VERTICAL)
self.testTrialSpinCtrl = wx.SpinCtrl(self, #style=wx.SP_WRAP,
value=str(self.pg.nTestTrial), min=1, max=100)
self.Bind(wx.EVT_SPINCTRL, self.setNTestTrial, self.testTrialSpinCtrl)
self.offlineControls += [self.testTrialSpinCtrl]
testTrialControlBox.Add(self.testTrialSpinCtrl, proportion=1,
flag=wx.ALL | wx.EXPAND, border=10)
trialSizer.Add(testTrialControlBox, proportion=1,
flag=wx.BOTTOM | wx.RIGHT | wx.EXPAND, border=10)
self.sizer.Add(trialSizer, proportion=0, flag=wx.EXPAND)
def initMethod(self):
methodControlBox = widgets.ControlBox(self, label='Method', orient=wx.VERTICAL)
self.methodComboBox = wx.ComboBox(self, value=self.pg.method,
style=wx.CB_READONLY, choices=('Welch Power', 'Autoregressive'))
self.Bind(wx.EVT_COMBOBOX, self.setMethod, self.methodComboBox)
self.offlineControls += [self.methodComboBox]
methodControlBox.Add(self.methodComboBox, proportion=0,
flag=wx.ALL | wx.EXPAND, border=10)
self.sizer.Add(methodControlBox, proportion=0,
flag=wx.LEFT | wx.BOTTOM | wx.RIGHT | wx.EXPAND, border=10)
self.methodConfigSizer = wx.BoxSizer(orient=wx.VERTICAL)
self.welchPanel = WelchConfigPanel(self, pg=self.pg, cp=self)
self.methodConfigSizer.Add(self.welchPanel, proportion=1, flag=wx.EXPAND)
self.autoregPanel = AutoregConfigPanel(self, pg=self.pg, cp=self)
self.methodConfigSizer.Add(self.autoregPanel, proportion=1, flag=wx.EXPAND)
self.sizer.Add(self.methodConfigSizer, proportion=1, flag=wx.EXPAND)
self.methodConfig = self.welchPanel
def initNTrial(self):
trialSizer = wx.BoxSizer(orient=wx.HORIZONTAL)
trainTrialControlBox = widgets.ControlBox(self, label='Train Trials', orient=wx.VERTICAL)
self.trainTrialSpinCtrl = wx.SpinCtrl(self, #style=wx.SP_WRAP,
value=str(self.pg.nTrainTrial), min=10, max=100)
self.Bind(wx.EVT_SPINCTRL, self.setNTrainTrial, self.trainTrialSpinCtrl)
self.offlineControls += [self.trainTrialSpinCtrl]
trainTrialControlBox.Add(self.trainTrialSpinCtrl, proportion=1,
flag=wx.ALL | wx.EXPAND, border=10)
trialSizer.Add(trainTrialControlBox, proportion=1,
flag=wx.LEFT | wx.BOTTOM | wx.RIGHT | wx.EXPAND, border=10)
testTrialControlBox = widgets.ControlBox(self, label='Test Trials', orient=wx.VERTICAL)
self.testTrialSpinCtrl = wx.SpinCtrl(self, #style=wx.SP_WRAP,
value=str(self.pg.nTestTrial), min=1, max=100)
self.Bind(wx.EVT_SPINCTRL, self.setNTestTrial, self.testTrialSpinCtrl)
self.offlineControls += [self.testTrialSpinCtrl]
testTrialControlBox.Add(self.testTrialSpinCtrl, proportion=1,
flag=wx.ALL | wx.EXPAND, border=10)
trialSizer.Add(testTrialControlBox, proportion=1,
flag=wx.BOTTOM | wx.RIGHT | wx.EXPAND, border=10)
self.sizer.Add(trialSizer, proportion=0, flag=wx.EXPAND)
def initNTrial(self):
trialSizer = wx.BoxSizer(orient=wx.HORIZONTAL)
trainTrialControlBox = widgets.ControlBox(self, label='Train Trials', orient=wx.VERTICAL)
self.trainTrialSpinCtrl = wx.SpinCtrl(self, #style=wx.SP_WRAP,
value=str(self.pg.nTrainTrial), min=5, max=100)
self.Bind(wx.EVT_SPINCTRL, self.setNTrainTrial, self.trainTrialSpinCtrl)
self.offlineControls += [self.trainTrialSpinCtrl]
trainTrialControlBox.Add(self.trainTrialSpinCtrl, proportion=1,
flag=wx.ALL | wx.EXPAND, border=10)
trialSizer.Add(trainTrialControlBox, proportion=1,
flag=wx.LEFT | wx.BOTTOM | wx.RIGHT | wx.EXPAND, border=10)
testTrialControlBox = widgets.ControlBox(self, label='Test Trials', orient=wx.VERTICAL)
self.testTrialSpinCtrl = wx.SpinCtrl(self, #style=wx.SP_WRAP,
value=str(self.pg.nTestTrial), min=1, max=100)
self.Bind(wx.EVT_SPINCTRL, self.setNTestTrial, self.testTrialSpinCtrl)
self.offlineControls += [self.testTrialSpinCtrl]
testTrialControlBox.Add(self.testTrialSpinCtrl, proportion=1,
flag=wx.ALL | wx.EXPAND, border=10)
trialSizer.Add(testTrialControlBox, proportion=1,
flag=wx.BOTTOM | wx.RIGHT | wx.EXPAND, border=10)
self.sizer.Add(trialSizer, proportion=0, flag=wx.EXPAND)
def initLattice(self):
latticeSizer = wx.BoxSizer(orient=wx.HORIZONTAL)
latticeSizeXControlBox = widgets.ControlBox(self, label='Lattice Size X', orient=wx.VERTICAL)
self.latticeSizeXSpinCtrl = wx.SpinCtrl(self, #style=wx.SP_WRAP,
value=str(self.pg.latticeSize[0]), min=1, max=512)
self.Bind(wx.EVT_SPINCTRL, self.setLatticeSizeX, self.latticeSizeXSpinCtrl)
self.offlineControls += [self.latticeSizeXSpinCtrl]
latticeSizeXControlBox.Add(self.latticeSizeXSpinCtrl, proportion=1,
flag=wx.ALL | wx.EXPAND, border=10)
latticeSizer.Add(latticeSizeXControlBox, proportion=1,
flag=wx.LEFT | wx.BOTTOM | wx.RIGHT | wx.EXPAND, border=10)
latticeSizeYControlBox = widgets.ControlBox(self, label='Lattice Size Y', orient=wx.VERTICAL)
self.latticeSizeYSpinCtrl = wx.SpinCtrl(self, #style=wx.SP_WRAP,
value=str(self.pg.latticeSize[0]), min=1, max=512)
self.Bind(wx.EVT_SPINCTRL, self.setLatticeSizeY, self.latticeSizeYSpinCtrl)
self.offlineControls += [self.latticeSizeYSpinCtrl]
latticeSizeYControlBox.Add(self.latticeSizeYSpinCtrl, proportion=1,
flag=wx.ALL | wx.EXPAND, border=10)
latticeSizer.Add(latticeSizeYControlBox, proportion=1,
flag=wx.BOTTOM | wx.RIGHT | wx.EXPAND, border=10)
self.sizer.Add(latticeSizer, proportion=0, flag=wx.EXPAND)
def initLayout(self):
"""Initialize the page layout.
"""
scrolledSizer = wx.BoxSizer(orient=wx.HORIZONTAL)
scrolledSizer.Add(self.sourceSizer, proportion=0)#, flag=wx.EXPAND)
scrolledSizer.Add(self.chanSizer, proportion=0, flag=wx.EXPAND)
scrolledSizer.Add(self.messageSizer, proportion=1, flag=wx.EXPAND)
self.scrolledPanel.SetSizer(scrolledSizer)
# main sizer
sizer = wx.BoxSizer(orient=wx.HORIZONTAL)
sizer.Add(self.scrolledPanel, proportion=1, flag=wx.EXPAND)
self.SetSizer(sizer)
self.scrolledPanel.Layout()
self.scrolledPanel.FitInside()
self.scrolledPanel.SetupScrolling()
# hide after layout (prevents gtk warnings)
for sp in self.srcPanels.values():
sp.deselect()
def __init__(self, parent, pg, *args, **kwargs):
"""Construct a new panel containing configuration widgets.
Args:
parent: Parent in wx hierarchy.
pg: Page to be configured.
*args, **kwargs: Additional arguments passed
to the wx.Panel base class.
"""
# initialize wx.Panel base class
ScrolledPanel.__init__(self, parent=parent, *args, **kwargs)
# page to be configured
self.pg = pg
# main sizer
self.sizer = wx.BoxSizer(orient=wx.VERTICAL)
self.SetSizer(self.sizer)
self.SetupScrolling()#scroll_x=False, scroll_y=True)
self.offlineControls = []
def initSigControls(self):
"""Initialize signal controls.
"""
sigSizer = wx.BoxSizer(orient=wx.VERTICAL)
scaleControlBox = widgets.ControlBox(self, label='Noise', orient=wx.VERTICAL)
self.scaleText = wx.StaticText(self, label='%4.1f' % self.src.scale.value)
scaleTextSizer = wx.BoxSizer(orient=wx.VERTICAL)
scaleTextSizer.Add(self.scaleText, proportion=1, flag=wx.EXPAND)
self.scaleSlider = wx.Slider(self, style=wx.SL_VERTICAL,
value=self.src.scale.value*10.0, minValue=1, maxValue=100)
self.Bind(wx.EVT_SLIDER, self.setScale, self.scaleSlider)
scaleControlBox.Add(scaleTextSizer, proportion=0,
flag=wx.ALL | wx.EXPAND, border=10)
scaleControlBox.Add(self.scaleSlider, proportion=1,
flag=wx.LEFT | wx.BOTTOM | wx.RIGHT | wx.EXPAND, border=10)
sigSizer.Add(scaleControlBox, proportion=1,
flag=wx.ALL | wx.EXPAND, border=10)
self.sizer.Add(sigSizer, proportion=1, flag=wx.EXPAND)
def initFileControls(self):
fileSizer = wx.BoxSizer(orient=wx.VERTICAL)
fileControlBox = widgets.ControlBox(self, label='Data File', orient=wx.VERTICAL)
self.fileTextCtrl = wx.TextCtrl(self,
value=str('SAMPLE DATA'), style=wx.TE_READONLY)
self.fileBrowseButton = wx.Button(self, label='Browse')
fileControlBox.Add(self.fileTextCtrl, proportion=1,
flag=wx.ALL | wx.EXPAND, border=10)
fileControlBox.Add(self.fileBrowseButton, proportion=1,
flag=wx.LEFT | wx.BOTTOM | wx.RIGHT | wx.EXPAND, border=10)
fileSizer.Add(fileControlBox, proportion=1,
flag=wx.LEFT | wx.BOTTOM | wx.RIGHT | wx.EXPAND, border=10)
self.sizer.Add(fileSizer, proportion=1, flag=wx.EXPAND)
def __init__(self, parent, src, orient=wx.HORIZONTAL, *args, **kwargs):
"""Initialize a new source configuration panel.
Args:
parent: wx parent of this panel.
src: Source to configure.
args, kwargs: Additional arguments to pass to the wx.Panel
base class constructor.
"""
wx.Panel.__init__(self, parent=parent, *args, **kwargs)
self.src = src
self.sizer = wx.BoxSizer(orient=orient)
self.SetSizer(self.sizer)
def initOptions(self):
optionsSizer = wx.BoxSizer(wx.HORIZONTAL)
kernTypeControlBox = widgets.ControlBox(self, label='Kernel Type', orient=wx.HORIZONTAL)
self.kernTypeComboBox = wx.ComboBox(self, choices=self.flt.kernMap.keys(),
value=self.flt.kernType, style=wx.CB_DROPDOWN)
self.Bind(wx.EVT_COMBOBOX, self.setKernType, self.kernTypeComboBox)
kernTypeControlBox.Add(self.kernTypeComboBox, proportion=1, flag=wx.ALL, border=8)
optionsSizer.Add(kernTypeControlBox, proportion=1,
flag=wx.ALL | wx.ALIGN_CENTER, border=8)
widthControlBox = widgets.ControlBox(self, label='Width', orient=wx.HORIZONTAL)
self.widthSpinCtrl = wx.SpinCtrl(self, value=str(self.flt.width), min=2, max=100)
self.Bind(wx.EVT_SPINCTRL, self.setWidth, self.widthSpinCtrl)
widthControlBox.Add(self.widthSpinCtrl, proportion=1, flag=wx.ALL, border=8)
optionsSizer.Add(widthControlBox, proportion=0,
flag=wx.TOP | wx.RIGHT | wx.BOTTOM | wx.EXPAND, border=8)
self.sizer.Add(optionsSizer, proportion=0)#, flag=wx.EXPAND)