Exemple #1
0
def SetIntValCB(recv, send, sig, data):
    vw = gi.SpinBox(handle=send)
    nm = vw.Name()
    # print("spin name:", nm)
    nms = nm.split(':')
    cv = classviews[nms[0]]
    flds = cv.Class.__dict__
    setattr(cv.Class, nms[1], vw.Value)
Exemple #2
0
 def Update(self):
     flds = self.Class.__dict__
     for nm, val in flds.items():
         if nm in self.Views:
             vw = self.Views[nm]
             # print("updating:", nm, "view:", vw)
             if isinstance(val, bool):
                 svw = gi.CheckBox(vw)
                 svw.SetChecked(val)
             elif isinstance(val, go.GoClass):
                 pass
             elif isinstance(val, pd.DataFrame):
                 pass
             elif isinstance(val, (int, float)):
                 svw = gi.SpinBox(vw)
                 svw.SetValue(val)
             else:
                 tvw = gi.TextField(vw)
                 tvw.SetText(str(val))
Exemple #3
0
def PyObjUpdtView(val, vw, nm):
    """
    updates the given view widget for given value
    """
    if isinstance(val, Enum):
        if isinstance(vw, gi.ComboBox):
            svw = gi.ComboBox(vw)
            svw.SetCurVal(val.name)
        else:
            print("epygiv; Enum value: %s doesn't have ComboBox widget" % nm)
    elif isinstance(val, go.GoClass):
        pass
    elif isinstance(val, ClassViewObj):
        val.UpdateClassViewInline()
        val.UpdateClassView()
    elif isinstance(val, bool):
        if isinstance(vw, gi.CheckBox):
            svw = gi.CheckBox(vw)
            svw.SetChecked(val)
        else:
            print("epygiv; bool value: %s doesn't have CheckBox widget" % nm)
    elif isinstance(val, (int, float)):
        if isinstance(vw, gi.SpinBox):
            svw = gi.SpinBox(vw)
            svw.SetValue(val)
        else:
            print("epygiv; numerical value: %s doesn't have SpinBox widget" %
                  nm)
    else:
        if isinstance(vw, gi.TextField):
            tvw = gi.TextField(vw)
            tvw.SetText(str(val))
        else:
            print(
                "epygiv; object %s = %s doesn't have expected TextField widget"
                % (nm, val))
Exemple #4
0
def SetFloatValCB(recv, send, sig, data):
    vw = gi.SpinBox(handle=send)
    nm = vw.Name()
    nms = nm.split(':')
    cv = classviews[nms[0]]
    setattr(cv.Class, nms[1], float(vw.Value))
Exemple #5
0
 def Config(self):
     self.Frame.SetStretchMaxWidth()
     self.Frame.SetStretchMaxHeight()
     self.Frame.Lay = gi.LayoutGrid
     self.Frame.Stripes = gi.RowStripes
     self.Frame.SetPropInt("columns", 2)
     updt = self.Frame.UpdateStart()
     self.Frame.SetFullReRender()
     self.Frame.DeleteChildren(True)
     flds = self.Class.__dict__
     self.Views = {}
     for nm, val in flds.items():
         tags = self.FieldTags(nm)
         if self.HasTagValue(tags, "view", "-"):
             continue
         lbl = gi.Label(self.Frame.AddNewChild(gi.KiT_Label(), "lbl_" + nm))
         lbl.SetText(nm)
         if isinstance(val, bool):
             vw = gi.CheckBox(
                 self.Frame.AddNewChild(gi.KiT_CheckBox(),
                                        self.Name + ":" + nm))
             vw.SetChecked(val)
             vw.ButtonSig.Connect(self.Frame, SetBoolValCB)
             if self.HasTagValue(tags, "inactive", "+"):
                 vw.SetInactive()
             self.Views[nm] = vw
         elif isinstance(val, go.GoClass):
             vw = gi.Action(
                 self.Frame.AddNewChild(gi.KiT_Action(),
                                        self.Name + ":" + nm))
             if hasattr(val, "Label"):
                 vw.SetText(val.Label())
             else:
                 vw.SetText(nm)
             vw.SetPropStr("padding", "2px")
             vw.SetPropStr("margin", "2px")
             vw.SetPropStr("border-radius", "4px")
             vw.ActionSig.Connect(self.Frame, EditGoObjCB)
             if self.HasTagValue(tags, "inactive", "+"):
                 vw.SetInactive()
             self.Views[nm] = vw
         elif isinstance(val, pd.DataFrame):
             vw = gi.Action(
                 self.Frame.AddNewChild(gi.KiT_Action(),
                                        self.Name + ":" + nm))
             vw.SetText(nm)
             vw.SetPropStr("padding", "2px")
             vw.SetPropStr("margin", "2px")
             vw.SetPropStr("border-radius", "4px")
             vw.ActionSig.Connect(self.Frame, EditObjCB)
             if self.HasTagValue(tags, "inactive", "+"):
                 vw.SetInactive()
             self.Views[nm] = vw
         elif isinstance(val, (int, float)):
             vw = gi.SpinBox(
                 self.Frame.AddNewChild(gi.KiT_SpinBox(),
                                        self.Name + ":" + nm))
             vw.SetValue(val)
             vw.SpinBoxSig.Connect(self.Frame, SetIntValCB)
             if self.HasTagValue(tags, "inactive", "+"):
                 vw.SetInactive()
             self.Views[nm] = vw
         else:
             vw = gi.TextField(
                 self.Frame.AddNewChild(gi.KiT_TextField(),
                                        self.Name + ":" + nm))
             vw.SetText(str(val))
             vw.SetPropStr("min-width", "10em")
             vw.TextFieldSig.Connect(self.Frame, SetStrValCB)
             if self.HasTagValue(tags, "inactive", "+"):
                 vw.SetInactive()
             self.Views[nm] = vw
     self.Frame.UpdateEnd(updt)