From 83e0c7584e4492bb2ec17c0da09d2ba803877ec9 Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Fri, 20 Nov 2020 22:09:09 +0100 Subject: [PATCH] added LabeledTweakEntry; some TweakPanel additions; cleaned up value to string conversions; removed some redundant keyword args that were anyway the default --- slic/gui/daqpanels.py | 37 +++++++++++++++++++++++++++---------- slic/gui/widgets.py | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 10 deletions(-) diff --git a/slic/gui/daqpanels.py b/slic/gui/daqpanels.py index b11eea38..e51fd70f 100644 --- a/slic/gui/daqpanels.py +++ b/slic/gui/daqpanels.py @@ -1,7 +1,7 @@ from concurrent.futures import ThreadPoolExecutor import wx -from .widgets import show_list, show_two_lists, TwoButtons, LabeledEntry, make_filled_vbox, make_filled_hbox +from .widgets import show_list, show_two_lists, TwoButtons, LabeledTweakEntry, LabeledEntry, make_filled_vbox, make_filled_hbox from slic.core.adjustable import Adjustable from slic.core.acquisition.bschannels import BSChannels @@ -148,15 +148,15 @@ class ScanPanel(wx.Panel): self.scan = None # widgets: - self.st_adj = st_adj = wx.StaticText(self, label="") + self.st_adj = st_adj = wx.StaticText(self) self.cb_adjs = cb_adjs = AdjustableComboBox(self) self.on_change_adj(None) # update static text with default selection cb_adjs.Bind(wx.EVT_COMBOBOX, self.on_change_adj) - self.le_start = le_start = LabeledEntry(self, label="Start", value="0") - self.le_stop = le_stop = LabeledEntry(self, label="Stop", value="10") - self.le_step = le_step = LabeledEntry(self, label="Step Size", value="0.1") + self.le_start = le_start = LabeledEntry(self, label="Start", value=0) + self.le_stop = le_stop = LabeledEntry(self, label="Stop", value=10) + self.le_step = le_step = LabeledEntry(self, label="Step Size", value=0.1) self.le_nsteps = le_nsteps = LabeledEntry(self, label="#Steps") le_nsteps.Disable() @@ -171,7 +171,7 @@ class ScanPanel(wx.Panel): cb_relative.SetValue(False) cb_return.SetValue(True) - self.le_npulses = le_npulses = LabeledEntry(self, label="#Pulses", value="100") + self.le_npulses = le_npulses = LabeledEntry(self, label="#Pulses", value=100) self.le_fname = le_fname = LabeledEntry(self, label="Filename", value="test") self.btn_go = btn_go = TwoButtons(self) @@ -245,20 +245,28 @@ class ScanPanel(wx.Panel): + + class TweakPanel(wx.Panel): def __init__(self, parent, *args, **kwargs): wx.Panel.__init__(self, parent, *args, **kwargs) # widgets: - self.st_adj = st_adj = wx.StaticText(self, label="") - + self.st_adj = st_adj = wx.StaticText(self) self.cb_adjs = cb_adjs = AdjustableComboBox(self) - self.on_change_adj(None) # update static text with default selection + self.le_abs = le_abs = LabeledEntry(self, label="Absolute Position") + + self.on_change_adj(None) # update static text and entry with default selection cb_adjs.Bind(wx.EVT_COMBOBOX, self.on_change_adj) + lte = LabeledTweakEntry(self, label="Relative pos", value=0.01) + + btn_go = wx.Button(self, label="Go!") + btn_go.Bind(wx.EVT_BUTTON, self.on_go) + # sizers: - widgets = (cb_adjs, st_adj) + widgets = (cb_adjs, st_adj, lte, le_abs, btn_go) vbox = make_filled_vbox(widgets, border=10) self.SetSizerAndFit(vbox) @@ -267,6 +275,15 @@ class TweakPanel(wx.Panel): print("change adjustable", event) adjustable = self.cb_adjs.get() self.st_adj.SetLabel(repr(adjustable)) + adjustable = self.cb_adjs.get() + value = adjustable.get_current_value() + self.le_abs.SetValue(str(value)) + + + def on_go(self, event): + print("move", event) + + diff --git a/slic/gui/widgets.py b/slic/gui/widgets.py index e29a581a..f50e3f34 100644 --- a/slic/gui/widgets.py +++ b/slic/gui/widgets.py @@ -122,11 +122,44 @@ class TwoButtons(wx.BoxSizer): + + +class LabeledTweakEntry(wx.BoxSizer): + + def __init__(self, parent, id=wx.ID_ANY, label="", value=""): + super().__init__(wx.VERTICAL) + + value = str(value) + + self.label = label = wx.StaticText(parent, label=label) + self.text = text = wx.TextCtrl(parent, value=value, style=wx.TE_RIGHT) + + btn_left = wx.Button(parent, label="<<") + btn_right = wx.Button(parent, label=">>") + + hb_tweak = wx.BoxSizer(wx.HORIZONTAL) + hb_tweak.Add(btn_left) + hb_tweak.Add(btn_right) + hb_tweak.Add(text, proportion=1, flag=wx.ALL|wx.EXPAND) + + self.Add(label, flag=wx.EXPAND) + self.Add(hb_tweak, flag=wx.EXPAND) + + + def __getattr__(self, name): + return getattr(self.text, name) + + + + + class LabeledEntry(wx.BoxSizer): def __init__(self, parent, id=wx.ID_ANY, label="", value=""): super().__init__(wx.VERTICAL) + value = str(value) + self.label = label = wx.StaticText(parent, label=label) self.text = text = wx.TextCtrl(parent, value=value, style=wx.TE_RIGHT)