def doUI(self):
        self.setModal(True)

        nolimit = [-float('inf'),float('inf')]

        self.input_name  = textInput( self,'',[0              , 0, self.nl, self.ls],'Parameter name' )
        self.input_units = textInput( self,'',[self.nl        , 0, self.ul, self.ls],'Parameter units')
        self.input_value = floatInput(self,nolimit,8,'',[self.nl+self.ul, 0, self.vl, self.ls],'Parameter value')
        self.button_add  = queryButton("Add",self,'',[0,self.ls],self.add_parameter)

        self.label_name  = simpleText(self,"Parameter name" , [0              , self.ls*3, self.nl, self.ls])
        self.label_units = simpleText(self,"Parameter units", [self.nl        , self.ls*3, self.ul, self.ls])
        self.label_value = simpleText(self,"Parameter value", [self.nl+self.ul, self.ls*3, self.vl, self.ls])

        self.list_parameters = simpleList(self          ,[0      , self.ls*4, self.nl+self.ul+self.vl, self.ls*4], [])
        self.list_parameters.setFont(gui.QFont("Lucida Console",8))

        self.button_remove = queryButton('Remove selected'  , self, '', [0                         , self.ls*8],self.remove_selected)
        self.button_clear  = queryButton('Clear all'        , self, '', [self.nl-167               , self.ls*8],self.remove_all     )
        self.button_write  = queryButton('Write parameters' , self, '', [self.nl+self.ul+self.vl-92, self.ls*8],self.write_parameters )

        self.setFixedSize(self.nl+self.ul+self.vl,self.ls*9)
        self.setWindowTitle("Parameter box")

        self.show()
    def doUI(self):
        self.setModal(True)

        self.input_user    = textInput(self,'',[0      , 0, self.ul, self.ls],'user')
        self.input_comment = textInput(self,'',[self.ul, 0, self.cl, self.ls],'comment body')
        self.button_add    = queryButton("Add",self,'',[0,self.ls],self.add_comment)

        self.label_user    = simpleText(self,"User"   ,[0      , self.ls*3, self.ul        , self.ls  ])
        self.label_comment = simpleText(self,"Comment",[self.ul, self.ls*3, self.cl        , self.ls  ])

        self.list_comments = simpleList(self          ,[0      , self.ls*4, self.ul+self.cl, self.ls*4], [])
        self.list_comments.setFont(gui.QFont("Lucida Console",8))

        self.button_remove = queryButton('Remove selected', self, '', [0                 , self.ls*8],self.remove_selected)
        self.button_clear  = queryButton('Clear all'      , self, '', [self.ul-39        , self.ls*8],self.remove_all     )
        self.button_write  = queryButton('Write comments' , self, '', [self.ul+self.cl-84, self.ls*8],self.write_comments )

        self.setFixedSize(self.ul+self.cl,self.ls*9)
        self.setWindowTitle("Comment box")

        self.show()
    def doUI(self):
        # background
        # self.setBackground(gui.QColor('black'))

        # use self.det
        if self.kind == "1d":
            self.stepsize = (self.det["stop"] - self.det["start"]) / (self.det["steps"])
            self.xsetting = self.det["start"]  # current value of setting. Starts at beginning.
        elif self.kind == "2d":
            self.x_stepsize = (self.det["xstop"] - self.det["xstart"]) / (self.det["xsteps"])
            self.y_stepsize = (self.det["ystop"] - self.det["ystart"]) / (self.det["ysteps"])
            self.x_setting = self.det["xstart"]
            self.y_setting = self.det["ystart"]
            self.x_num = 0
            self.y_num = 0

        # labels / info
        t = self.det["start_timestamp"]
        time_text = "Sweep started at: %i/%i/%i %i:%i:%i" % (
            t.tm_mon,
            t.tm_mday,
            t.tm_year,
            t.tm_hour,
            t.tm_min,
            t.tm_sec,
        )
        self.label_starttime = simpleText(self, time_text, [0, 0, self.gw // 2 + 74, self.ls])
        self.label_stepsdone = simpleText(
            self, "Measurements done: %i" % (self.measurements_completed), [0, self.ls * 1, self.gw // 2, self.ls]
        )

        if self.kind == "1d":
            self.meas_total = self.det["steps"] + 1
        elif self.kind == "2d":
            self.meas_total = self.det["xnum"] * self.det["ynum"]

        self.label_stepstotal = simpleText(
            self, "Measurements total: %i" % (self.meas_total), [0, self.ls * 2, self.gw // 2, self.ls]
        )
        self.progress_bar = gui.QProgressBar(self)
        self.progress_bar.setRange(0, self.meas_total)
        self.progress_bar.setGeometry(0, self.ls * 3, self.gw // 2, self.ls)

        # sweep control
        self.button_pause = queryButton("Pause", self, "", [self.gw // 2, self.ls * 1], self.pause)
        self.button_resume = queryButton("Resume", self, "", [self.gw // 2, self.ls * 2], self.resume)
        self.button_cancel = queryButton("Cancel", self, "", [self.gw // 2, self.ls * 3], self.cancel)
        self.checkbox_cancel = checkBox(self, "Confirm", [self.gw // 2 + 76, self.ls * 3 - 3])

        # 'set graphs to automatic' button
        self.button_graph_auto = queryButton("Reset graph view", self, "", [0, self.ls * 4], self.reset_graph_views)

        # completion readout
        self.label_complete_time = simpleText(
            self, "Completed at:", [self.gw // 2 + 76 + self.ls, self.ls * 0, self.gw // 2, self.ls]
        )
        self.label_complete_rate = simpleText(
            self, "Average rate:", [self.gw // 2 + 76 + self.ls, self.ls * 1, self.gw // 2, self.ls]
        )
        self.label_current_rate = simpleText(
            self, "Current rate:", [self.gw // 2 + 76 + self.ls, self.ls * 2, self.gw // 2, self.ls]
        )

        # data set name, location
        self.input_logname = textInput(self, "", [self.gw + 76 + self.ls * 2, self.ls * 0, self.ll, self.ls])
        self.input_logdest = textInput(self, "", [self.gw + 76 + self.ls * 2, self.ls * 1, self.ll, self.ls])
        self.input_logname.setPlaceholderText("Dataset name")
        self.input_logdest.setPlaceholderText("Dataset location")
        self.input_logdest.setText(self.det["dv_loc"])
        self.input_logname.setText(self.det["dv_name"])
        self.input_logdest.setToolTip(
            "Folders separated by '\\' characters.\nNo leading or trailing backslash.\nExample: data\\testing\\2016\nDefault: data"
        )

        # data logging (data vault) details
        self.button_add_comments = queryButton(
            "Add comment(s)", self, "", [self.ll + self.gw + 76 + self.ls * 3, self.ls * 0], self.add_comments
        )
        self.button_add_parameters = queryButton(
            "Add parameter(s)", self, "", [self.ll + self.gw + 76 + self.ls * 3, self.ls * 1], self.add_parameters
        )
        self.button_log_data = queryButton(
            "Write data set", self, "", [self.ll + self.gw + 76 + self.ls * 3, self.ls * 2], self.log_data
        )

        # colormap
        if self.kind == "2d":
            self.label_colormap = simpleText(
                self, "Color map:", [self.ll * 2 + self.ls * 2 + self.gw + 76 + self.ls * 2, 0, 64, self.ls]
            )
            self.dropdown_colormap = simpleDropdown(
                self,
                ["None", "Custom"] + maps.keys(),
                [self.ll * 2 + self.ls * 2 + self.gw + self.ls * 2 + 76 + 64, 0, 64, self.ls],
                self.change_colormap,
            )
            self.button_custommap = queryButton(
                "Custom", self, "", [self.ll * 2 + self.ls * 2 + self.gw + 76 + self.ls * 2, self.ls], self.cust_map
            )
        elif self.kind == "1d":
            self.label_colormap = self.dropdown_colormap = self.button_custommap = None

        # open dataset if autosave is on
        if self.det["dv_autosave"]:
            self.open_dataset()
    def doUI(self):
        # background
        #self.setBackground(gui.QColor('black'))

        # use self.det
        if self.kind == '1d':
            self.stepsize = (self.det['stop'] -
                             self.det['start']) / (self.det['steps'])
            self.xsetting = self.det[
                'start']  # current value of setting. Starts at beginning.
        elif self.kind == '2d':
            self.x_stepsize = (self.det['xstop'] -
                               self.det['xstart']) / (self.det['xsteps'])
            self.y_stepsize = (self.det['ystop'] -
                               self.det['ystart']) / (self.det['ysteps'])
            self.x_setting = self.det['xstart']
            self.y_setting = self.det['ystart']
            self.x_num = 0
            self.y_num = 0

        # labels / info
        t = self.det['start_timestamp']
        time_text = "Sweep started at: %i/%i/%i %i:%i:%i" % (
            t.tm_mon, t.tm_mday, t.tm_year, t.tm_hour, t.tm_min, t.tm_sec)
        self.label_starttime = simpleText(self, time_text,
                                          [0, 0, self.gw // 2 + 74, self.ls])
        self.label_stepsdone = simpleText(
            self, "Measurements done: %i" % (self.measurements_completed),
            [0, self.ls * 1, self.gw // 2, self.ls])

        if self.kind == '1d':
            self.meas_total = self.det['steps'] + 1
        elif self.kind == '2d':
            self.meas_total = self.det['xnum'] * self.det['ynum']

        self.label_stepstotal = simpleText(
            self, "Measurements total: %i" % (self.meas_total),
            [0, self.ls * 2, self.gw // 2, self.ls])
        self.progress_bar = gui.QProgressBar(self)
        self.progress_bar.setRange(0, self.meas_total)
        self.progress_bar.setGeometry(0, self.ls * 3, self.gw // 2, self.ls)

        # sweep control
        self.button_pause = queryButton("Pause", self, '',
                                        [self.gw // 2, self.ls * 1],
                                        self.pause)
        self.button_resume = queryButton("Resume", self, '',
                                         [self.gw // 2, self.ls * 2],
                                         self.resume)
        self.button_cancel = queryButton("Cancel", self, '',
                                         [self.gw // 2, self.ls * 3],
                                         self.cancel)
        self.checkbox_cancel = checkBox(self, "Confirm",
                                        [self.gw // 2 + 76, self.ls * 3 - 3])

        # 'set graphs to automatic' button
        self.button_graph_auto = queryButton("Reset graph view", self, "",
                                             [0, self.ls * 4],
                                             self.reset_graph_views)

        # completion readout
        self.label_complete_time = simpleText(
            self, "Completed at:",
            [self.gw // 2 + 76 + self.ls, self.ls * 0, self.gw // 2, self.ls])
        self.label_complete_rate = simpleText(
            self, "Average rate:",
            [self.gw // 2 + 76 + self.ls, self.ls * 1, self.gw // 2, self.ls])
        self.label_current_rate = simpleText(
            self, "Current rate:",
            [self.gw // 2 + 76 + self.ls, self.ls * 2, self.gw // 2, self.ls])

        # data set name, location
        self.input_logname = textInput(
            self, '',
            [self.gw + 76 + self.ls * 2, self.ls * 0, self.ll, self.ls])
        self.input_logdest = textInput(
            self, '',
            [self.gw + 76 + self.ls * 2, self.ls * 1, self.ll, self.ls])
        self.input_logname.setPlaceholderText("Dataset name")
        self.input_logdest.setPlaceholderText("Dataset location")
        self.input_logdest.setText(self.det['dv_loc'])
        self.input_logname.setText(self.det['dv_name'])
        self.input_logdest.setToolTip(
            "Folders separated by '\\' characters.\nNo leading or trailing backslash.\nExample: data\\testing\\2016\nDefault: data"
        )

        # data logging (data vault) details
        self.button_add_comments = queryButton(
            "Add comment(s)", self, '',
            [self.ll + self.gw + 76 + self.ls * 3, self.ls * 0],
            self.add_comments)
        self.button_add_parameters = queryButton(
            "Add parameter(s)", self, '',
            [self.ll + self.gw + 76 + self.ls * 3, self.ls * 1],
            self.add_parameters)
        self.button_log_data = queryButton(
            "Write data set", self, '',
            [self.ll + self.gw + 76 + self.ls * 3, self.ls * 2], self.log_data)

        # colormap
        if self.kind == '2d':
            self.label_colormap = simpleText(self, "Color map:", [
                self.ll * 2 + self.ls * 2 + self.gw + 76 + self.ls * 2, 0, 64,
                self.ls
            ])
            self.dropdown_colormap = simpleDropdown(
                self, ["None", "Custom"] + maps.keys(), [
                    self.ll * 2 + self.ls * 2 + self.gw + self.ls * 2 + 76 +
                    64, 0, 64, self.ls
                ], self.change_colormap)
            self.button_custommap = queryButton("Custom", self, '', [
                self.ll * 2 + self.ls * 2 + self.gw + 76 + self.ls * 2, self.ls
            ], self.cust_map)
        elif self.kind == '1d':
            self.label_colormap = self.dropdown_colormap = self.button_custommap = None

        # open dataset if autosave is on
        if self.det['dv_autosave']: self.open_dataset()