def initUI(self): self.grid = QtGui.QGridLayout() self.setLayout(self.grid) self.lbl1 = QtGui.QLabel("Select beamline") self.lbl2 = QtGui.QLabel( "Enter theta position pv if other than default") self.lbl3 = QtGui.QLabel("Warning Message") self.lbl4 = QtGui.QLabel( "NOTE: PV for 2-IDE data processed before Feb 2018 is 657") self.btn = QtGui.QPushButton("Okay") self.txtfield = QtGui.QLineEdit("8") self.txtfield2 = QtGui.QLineEdit("663") self.button = QtGui.QCheckBox("Bionanoprobe") self.button2 = QtGui.QCheckBox("2-IDE") self.setWindowTitle('Configuration') self.btn.setAutoRepeat(True) vb = QtGui.QVBoxLayout() vb.addWidget(self.lbl1, 1) vb.addWidget(self.button, 2) vb.addWidget(self.button2, 3) vb2 = QtGui.QVBoxLayout() vb2.addWidget(self.lbl2, 1) vb2.addWidget(self.txtfield, 2) vb2.addWidget(self.txtfield2, 3) vb3 = QtGui.QVBoxLayout() vb3.addWidget(self.lbl3) vb3.addWidget(self.lbl4) vb4 = QtGui.QVBoxLayout() vb4.addWidget(self.btn) self.grid.addLayout(vb, 0, 0, 2, 1) self.grid.addLayout(vb2, 0, 1, 2, 2) self.grid.addLayout(vb3, 4, 0, 2, 3) self.grid.addLayout(vb4, 6, 1, 1, 1)
def createMessageWidget(self): '''create message box widget. return group ''' GridStartVal = '2' vbox = QtGui.QVBoxLayout() hbox = QtGui.QHBoxLayout() hbox2 = QtGui.QHBoxLayout() self.lbl = QtGui.QLineEdit("Step 1) Open configuration file", self) self.lbl2 = QtGui.QLineEdit() self.lbl2.setText(os.getcwd()) self.directoryButton = QtGui.QPushButton("Change Directory") hbox.addWidget(QtGui.QLabel("Message")) hbox.addWidget(self.lbl) hbox2.addWidget(QtGui.QLabel("Set Directory")) hbox2.addWidget(self.lbl2) hbox2.addWidget(self.directoryButton) vbox.addLayout(hbox) vbox.addLayout(hbox2) messageGroup = QtGui.QGroupBox("Message Box") messageGroup.setLayout(vbox) if self.tab_widget.currentIndex() == 1: self.lbl.setText("click hotspot, press n or press S to skip frame") else: self.lbl.setText("") return messageGroup
def __init__(self, apiKey, parent=None): super(Login, self).__init__(parent) self.apiKey = apiKey self.setWindowTitle('IG Login') self.textName = QtGui.QLineEdit(self) self.textPass = QtGui.QLineEdit(self) self.textPass.setEchoMode(QtGui.QLineEdit.Password) self.saveLogin = QtGui.QCheckBox('Save Login', self) self.saveLogin.setChecked(True) self.buttonLogin = QtGui.QPushButton('Login', self) self.buttonLogin.clicked.connect(self.handleLogin) layout = QtGui.QVBoxLayout(self) layout.addWidget(self.textName) layout.addWidget(self.textPass) layout.addWidget(self.saveLogin) layout.addWidget(self.buttonLogin)
def getparameters(self): self.parametersquit = QtGui.QVBoxLayout() self.entertime = QtGui.QLineEdit() self.entertimeinterval = QtGui.QLineEdit() self.parameters = QtGui.QFormLayout() self.parameters.addRow('Time:', self.entertime) self.parameters.addRow('Time Interval:', self.entertimeinterval) self.parametersquit.addLayout(self.parameters) self.quitbutton = QtGui.QPushButton('Quit') self.parametersquit.addWidget(self.quitbutton)
def getparameters(self): self.parametersquit = QtGui.QVBoxLayout() #creating user input boxes self.enterobserver = QtGui.QLineEdit('VLB') self.enterobserver.setMaxLength(3) self.enterdatamode = QtGui.QComboBox() self.enterdatamode.addItems([ 'Error', 'Raw', 'Low Pass Filtered', 'Mixed Mode', 'SQ1 Feedback' ]) self.enterreadoutcard = QtGui.QComboBox() for i in range(8): if i < 4: self.enterreadoutcard.addItem('MCE 1 RC %s' % (i % 4 + 1)) else: self.enterreadoutcard.addItem('MCE 2 RC %s' % (i % 4 + 1)) self.enterreadoutcard.addItem('All') self.enterframenumber = QtGui.QLineEdit('1350000') self.enterframenumber.setMaxLength(9) self.enterdatarate = QtGui.QLineEdit('45') self.entertimeinterval = QtGui.QLineEdit('120') self.enterchanneldelete = QtGui.QComboBox() self.enterchanneldelete.addItems(['No', 'Yes']) self.entershowmcedata = QtGui.QComboBox() self.entershowmcedata.addItems(['Yes', 'No']) self.submitbutton = QtGui.QPushButton('Submit') self.parameters = QtGui.QFormLayout() self.parameters.addRow('Observer', self.enterobserver) self.parameters.addRow('Datamode', self.enterdatamode) self.parameters.addRow('Readout Card', self.enterreadoutcard) self.parameters.addRow('Frame Number', self.enterframenumber) self.parameters.addRow('Data Rate', self.enterdatarate) self.parameters.addRow('Delete Old Columns', self.enterchanneldelete) self.parameters.addRow('Time Interval (s)', self.entertimeinterval) self.parameters.addRow('Show MCE Data', self.entershowmcedata) self.parameters.addRow(self.submitbutton) self.parametersquit.addLayout(self.parameters) #creating quit button self.quitbutton = QtGui.QPushButton('Quit') self.parametersquit.addWidget(self.quitbutton) self.readoutcardselect = QtGui.QComboBox() self.selectchannel = QtGui.QComboBox() self.selectrow = QtGui.QComboBox()
def createWidgets(self): """ Create some widgets to be placed inside """ self.btn = QtGui.QPushButton('press me') self.text = QtGui.QLineEdit('enter text') self.listw = QtGui.QListWidget() self.plot = pg.PlotWidget()
def init_gui(self): self.layout = QtGui.QGridLayout() self.setLayout(self.layout) self.title = QtGui.QLabel('<b>ANALISE DE CURVAS DE LUZ</b>', alignment=0x0004) self.bt_n = QtGui.QPushButton('usar um novo arquivo') self.kic = QtGui.QPushButton('buscar online') self.txt1 = QtGui.QLineEdit() self.txt2 = QtGui.QLineEdit() self.sub = QtGui.QPushButton('submit') self.layout.addWidget(self.title, 0, 0, 1, 2) self.layout.addWidget(self.bt_n, 1, 0) self.layout.addWidget(self.kic, 1, 1) self.layout.addWidget(self.txt1, 2, 0) self.layout.addWidget(self.txt2, 2, 1) self.layout.addWidget(self.sub, 2, 2) self.setGeometry(10, 10, 1000, 600) self.txt1.hide() self.txt2.hide() self.sub.hide() self.show()
def __init__(self, dataGenerator, parent=None): super(SpeedButton, self).__init__(parent=parent) self.verticalLayout = QtGui.QVBoxLayout(self) self.speed = 0.10 #self.label = QtGui.QLabel(self) #self.label.setText("Speed") #self.label.setFixedHeight(25) #self.startButton = QtGui.QPushButton('Apply Contingency', self) #self.startButton.clicked.connect(dataGenerator.start) #self.stopButton = QtGui.QPushButton('Reset', self) #self.stopButton.clicked.connect(dataGenerator.stop) self.fullPlotButton = QtGui.QPushButton("View Full Plot", self) self.zoomButton = QtGui.QPushButton("Zoom Out", self) self.textbox = QtGui.QLineEdit(self) self.textbox.setText('0.85') self.textButton = QtGui.QPushButton("Set Wind Power", self) #self.textButton.clicked.connect(self.setSlider) '''self.sb1 = QtGui.QRadioButton("x1") self.sb1.toggled.connect(lambda: self.setSpeed(1)) self.sb2 = QtGui.QRadioButton("x0.5") self.sb2.toggled.connect(lambda: self.setSpeed(0.5)) self.sb3 = QtGui.QRadioButton("x0.25") self.sb3.toggled.connect(lambda: self.setSpeed(0.25)) self.sb3.setChecked(True) self.sb4 = QtGui.QRadioButton("x0.10") self.sb4.toggled.connect(lambda: self.setSpeed(0.1))''' #self.speedLayout = QtGui.QVBoxLayout() #self.speedLayout.addWidget(self.label) #self.speedLayout.addWidget(self.sb1) self.verticalLayout.setAlignment(QtCore.Qt.AlignTop) #self.verticalLayout.addWidget(self.startButton) #self.verticalLayout.addWidget(self.stopButton) self.verticalLayout.addWidget(self.fullPlotButton) self.verticalLayout.addWidget(self.zoomButton) self.verticalLayout.addWidget(self.textbox) self.verticalLayout.addWidget(self.textButton)
def __init__(self, parent=None): super(DirReader, self).__init__(parent=parent) self.settings = QtCore.QSettings('dataviz', 'dirreader') self.baseDirLabel = QtGui.QLabel('Base directory') self.baseDirEdit = QtGui.QLineEdit('.') self.baseDirButton = QtGui.QPushButton('Open') self.baseDirButton.clicked.connect(self.selectBaseDir) self.baseDirWidget = QtGui.QWidget() layout = QtGui.QHBoxLayout() self.baseDirWidget.setLayout(layout) layout.addWidget(self.baseDirLabel) layout.addWidget(self.baseDirEdit) layout.addWidget(self.baseDirButton) self.pathTree = ptree.ParameterTree(showHeader=False) self.pathRules = PathParams(name='Path rules') self.pathTree.setParameters(self.pathRules, showTop=True) self.setLayout(QtGui.QVBoxLayout()) self.layout().addWidget(self.baseDirWidget) self.layout().addWidget(self.pathTree)
def __init__(self, parentWidget, onSearchString, onChooseSearchResult): self.onChooseSearchResult = onChooseSearchResult self.onSearchString = onSearchString completer = QtGui.QCompleter() completer.setCaseSensitivity(Qt.CaseInsensitive) completer.setMaxVisibleItems(20) completer.setCompletionMode(QtGui.QCompleter.UnfilteredPopupCompletion) self.model = QtGui.QStringListModel() completer.setModel(self.model) self.edit = edit = QtGui.QLineEdit(parentWidget) edit.setMinimumWidth(600) edit.setCompleter(completer) edit.textChanged.connect(self.textChanged) edit.returnPressed.connect(self.returnPressed) edit.keyPressEvent = self.keyPressEvent self.completer = completer self.threads = []
def initUI(self): self.xSize = 20 self.ySize = 20 self.bgBtn = QtGui.QPushButton("Bg Value") self.delHotspotBtn = QtGui.QPushButton("Delete HS") self.normalizeBtn = QtGui.QPushButton("Normalize") self.cutBtn = QtGui.QPushButton("Cut") self.gaussian33Btn = QtGui.QPushButton("3*3 gauss") self.gaussian55Btn = QtGui.QPushButton("5*5 gauss") self.xUpBtn = QtGui.QPushButton("x: +") self.xUpBtn.clicked.connect(self.xUp) self.xDownBtn = QtGui.QPushButton("x: -") self.xDownBtn.clicked.connect(self.xDown) self.yUpBtn = QtGui.QPushButton("y: +") self.yUpBtn.clicked.connect(self.yUp) self.yDownBtn = QtGui.QPushButton("y: -") self.yDownBtn.clicked.connect(self.yDown) self.xSizeLbl = QtGui.QLabel("x Size") self.ySizeLbl = QtGui.QLabel("y Size") self.xSizeTxt = QtGui.QLineEdit(str(self.xSize)) self.ySizeTxt = QtGui.QLineEdit(str(self.ySize)) self.combo1 = QtGui.QComboBox() self.combo2 = QtGui.QComboBox() hb1 = QtGui.QHBoxLayout() hb1.addWidget(self.xUpBtn) hb1.addWidget(self.xDownBtn) hb2 = QtGui.QHBoxLayout() hb2.addWidget(self.xSizeLbl) hb2.addWidget(self.xSizeTxt) hb3 = QtGui.QHBoxLayout() hb3.addWidget(self.yUpBtn) hb3.addWidget(self.yDownBtn) hb4 = QtGui.QHBoxLayout() hb4.addWidget(self.ySizeLbl) hb4.addWidget(self.ySizeTxt) vb1 = QtGui.QVBoxLayout() vb1.addLayout(hb1) vb1.addLayout(hb2) vb2 = QtGui.QVBoxLayout() vb2.addLayout(hb3) vb2.addLayout(hb4) xSG = QtGui.QGroupBox("x Size") xSG.setLayout(vb1) ySG = QtGui.QGroupBox("y Size") ySG.setLayout(vb2) vb3 = QtGui.QVBoxLayout() vb3.addWidget(self.combo1) vb3.addWidget(self.combo2) vb3.addWidget(xSG) vb3.addWidget(ySG) hb6 = QtGui.QHBoxLayout() hb6.addWidget(self.bgBtn, stretch=0) hb6.addWidget(self.delHotspotBtn, stretch=0) hb7 = QtGui.QHBoxLayout() hb7.addWidget(self.normalizeBtn, stretch=0) hb7.addWidget(self.cutBtn, stretch=0) hb8 = QtGui.QHBoxLayout() hb8.addWidget(self.gaussian33Btn, stretch=0) hb8.addWidget(self.gaussian55Btn, stretch=0) vb3.addLayout(hb6) vb3.addLayout(hb7) vb3.addLayout(hb8) self.setLayout(vb3)
def initUI(self): self.combo = QtGui.QComboBox(self) self.method = QtGui.QComboBox(self) self.btn = QtGui.QPushButton('Click2') self.save = QtGui.QPushButton("Save tiff files") self.save.setHidden(True) self.btn.setText("Sinogram") self.sld = QtGui.QSlider(QtCore.Qt.Horizontal, self) self.lcd = QtGui.QLineEdit("0") self.lbl = QtGui.QLabel() self.cbox = QtGui.QCheckBox("") self.lbl2 = QtGui.QLabel("Center") self.lbl.setText("") self.threshLbl = QtGui.QLabel("threshold") self.threshLe = QtGui.QLineEdit("") self.threshBtn = QtGui.QPushButton("Apply") centerBox = QtGui.QHBoxLayout() centerBox.addWidget(self.cbox) centerBox.addWidget(self.lbl2) centerBox.addWidget(self.lcd) self.lcd.setEnabled(False) self.methodname = ["mlem", "gridrec", "art", "pml_hybrid", "pml_quad"] self.mulBtn = QtGui.QPushButton("x 10") self.divBtn = QtGui.QPushButton("/ 10") mdBox = QtGui.QHBoxLayout() mdBox.addWidget(self.mulBtn) mdBox.addWidget(self.divBtn) self.maxLbl = QtGui.QLabel("Max") self.minLbl = QtGui.QLabel("Min") self.maxText = QtGui.QLineEdit() self.minText = QtGui.QLineEdit() maxBox = QtGui.QHBoxLayout() minBox = QtGui.QHBoxLayout() maxBox.addWidget(self.maxLbl) maxBox.addWidget(self.maxText) minBox.addWidget(self.minLbl) minBox.addWidget(self.minText) self.betaName = QtGui.QLabel("Beta") self.deltaName = QtGui.QLabel("Delta") self.itersName = QtGui.QLabel("Iteration") self.beta = QtGui.QLineEdit("1") self.delta = QtGui.QLineEdit("0.01") self.iters = QtGui.QLineEdit("10") betaBox = QtGui.QHBoxLayout() deltaBox = QtGui.QHBoxLayout() itersBox = QtGui.QHBoxLayout() threshBox = QtGui.QHBoxLayout() betaBox.addWidget(self.betaName) betaBox.addWidget(self.beta) deltaBox.addWidget(self.deltaName) deltaBox.addWidget(self.delta) itersBox.addWidget(self.itersName) itersBox.addWidget(self.iters) threshBox.addWidget(self.threshLbl) threshBox.addWidget(self.threshLe) threshBox.addWidget(self.threshBtn) for k in arange(len(self.methodname)): self.method.addItem(self.methodname[k]) vb = QtGui.QVBoxLayout() vb.addWidget(self.combo) vb.addWidget(self.method) vb.addWidget(self.btn) vb.addWidget(self.save) vb.addLayout(centerBox) vb.addLayout(threshBox) vb.addWidget(self.sld) vb.addWidget(self.lbl) vb.addLayout(mdBox) vb.addLayout(maxBox) vb.addLayout(minBox) vb.addLayout(itersBox) vb.addLayout(betaBox) vb.addLayout(deltaBox) self.setLayout(vb)
def getparameters(self): #creating user input boxes self.enterobserver = QtGui.QLineEdit('VLB') self.enterobserver.setMaxLength(3) self.enterdatamode = QtGui.QComboBox() self.enterdatamode.addItems( ['Error', 'Raw', 'Filtered SQ1 Feedback', 'Debugging', 'Mixed Mode (25:7)','Mixed Mode (22:10)','Mixed Mode (24:8)','Mixed mode (18:14)']) self.enterreadoutcard = QtGui.QComboBox() for i in range(8): if i < 4: self.enterreadoutcard.addItem('MCE 1 RC %s' % (i % 4 + 1)) else: self.enterreadoutcard.addItem('MCE 2 RC %s' % (i % 4 + 1)) self.enterreadoutcard.addItem('All') self.enterframenumber = QtGui.QLineEdit('1350000') self.enterframenumber.setMaxLength(9) self.enterdatarate = QtGui.QLineEdit('45') self.entertimeinterval = QtGui.QLineEdit('120') self.enterchanneldelete = QtGui.QComboBox() self.enterchanneldelete.addItems(['No', 'Yes']) self.entershowmcedata = QtGui.QComboBox() self.entershowmcedata.addItems(['Yes', 'No']) self.submitbutton = QtGui.QPushButton('Submit') self.mceGroupBox = QtGui.QGroupBox("MCE Parameters") self.parameters = QtGui.QFormLayout() self.mcetitle = QtGui.QLabel(self) self.mcetitle.setAlignment(QtCore.Qt.AlignCenter) self.mcetitle.setText('MCE Parameters') self.parameters.addRow(self.mcetitle) self.parameters.addRow('Observer', self.enterobserver) self.parameters.addRow('Datamode', self.enterdatamode) self.parameters.addRow('Readout Card', self.enterreadoutcard) self.parameters.addRow('Frame Number', self.enterframenumber) self.parameters.addRow('Data Rate', self.enterdatarate) self.parameters.addRow('Delete Old Columns', self.enterchanneldelete) self.parameters.addRow('Time Interval (s)', self.entertimeinterval) self.parameters.addRow('Show MCE Data', self.entershowmcedata) self.parameters.addRow(self.submitbutton) self.mceGroupBox.setLayout(self.parameters) # telescope options ================================================= self.telescan = QtGui.QComboBox() self.telescan.addItems(['1D','2D','BowTie (constant el)']) self.tel_delay = QtGui.QLineEdit('0') self.init_tel = QtGui.QComboBox() self.init_tel.addItems(['No','Yes']) self.telGroupBox = QtGui.QGroupBox("Telescope Parameters") self.telparams = QtGui.QFormLayout() self.teltitle = QtGui.QLabel(self) self.teltitle.setAlignment(QtCore.Qt.AlignCenter) self.teltitle.setText('Telescope Parameters') self.telparams.addRow(self.teltitle) self.telparams.addRow('Activate Telescope', self.init_tel) self.telparams.addRow('Scan Strategy', self.telescan) self.telparams.addRow('Delayed Start (sec)', self.tel_delay) self.starttel = QtGui.QPushButton('Initialize Telescope') self.telparams.addRow(self.starttel) self.telGroupBox.setLayout(self.telparams) # ===================================================================== self.parametersquit = QtGui.QVBoxLayout() self.parametersquit.setAlignment(QtCore.Qt.AlignCenter) self.parametersquit.addWidget(self.telGroupBox) self.parametersquit.addWidget(self.mceGroupBox) self.quitbutton = QtGui.QPushButton('Quit') self.parametersquit.addWidget(self.quitbutton) self.readoutcardselect = QtGui.QComboBox() self.selectchannel = QtGui.QComboBox() self.selectrow = QtGui.QComboBox()
def initUI(self): """Initialise the GUI.""" self.usemock = False hbmain = QtGui.QHBoxLayout() self.plt1 = pg.PlotWidget() self.plt1.setLabel('left', "y (mm)") self.plt1.setLabel('bottom', "x (mm)") self.plt1.showGrid(x=True, y=True) self.plt_headposition_x = pg.InfiniteLine(angle=90, movable=False) self.plt_headposition_y = pg.InfiniteLine(angle=0, movable=False) self.plt1.addItem(self.plt_headposition_x) self.plt1.addItem(self.plt_headposition_y) self.plt_gcode = self.plt1.plot(pen=pg.mkPen('r', width=2)) self.plt1.setAspectLocked(True,ratio=1) hbmain.addWidget(self.plt1) vbconsole = QtGui.QVBoxLayout() gb = QtGui.QGroupBox('console:') gbvb = QtGui.QVBoxLayout() gbvbhb = QtGui.QHBoxLayout() self.gui_console_date_cb = QtGui.QCheckBox('show date', self, checkable=True, checked=False) self.gui_console_time_cb = QtGui.QCheckBox('show time', self, checkable=True, checked=False) gbvbhb.addWidget(self.gui_console_date_cb) gbvbhb.addWidget(self.gui_console_time_cb) gbvb.addLayout(gbvbhb) self.gui_consoletext = QtGui.QTextEdit() gbvb.addWidget(self.gui_consoletext) self.gui_command = QtGui.QLineEdit('', self) self.gui_command.returnPressed.connect(self.respond_gui_command) gbvb.addWidget(self.gui_command) gb.setLayout(gbvb) vbconsole.addWidget(gb) hbmain.addLayout(vbconsole) vbcontrols = QtGui.QVBoxLayout() gb = QtGui.QGroupBox('connection:') gbvb = QtGui.QVBoxLayout() hbox = QtGui.QHBoxLayout() pb = QtGui.QPushButton("Scan") pb.clicked.connect(self.scan) self.scanbtn = pb hbox.addWidget(pb) cb=QtGui.QComboBox() self.port_list=cb self.port_list.setMinimumWidth(200) hbox.addWidget(cb) cb=QtGui.QCheckBox("Open") self.opened=cb cb.stateChanged.connect(self.toggle_connection) hbox.addWidget(cb) gbvb.addLayout(hbox) gb.setLayout(gbvb) vbcontrols.addWidget(gb) # gb = QtGui.QGroupBox('controls:') # gbvb = QtGui.QVBoxLayout() # gbvbhb = QtGui.QHBoxLayout() # btn = QtGui.QPushButton('unlock') # btn.clicked.connect(self.unlock) # gbvbhb.addWidget(btn) # btn = QtGui.QPushButton('FEED HOLD') # btn.clicked.connect(self.feed_hold) # gbvbhb.addWidget(btn) # btn = QtGui.QPushButton('RESUME') # btn.clicked.connect(self.feed_resume) # gbvbhb.addWidget(btn) # gbvb.addLayout(gbvbhb) # gb.setLayout(gbvb) # vbcontrols.addWidget(gb) gb = QtGui.QGroupBox('main:') gbvb = QtGui.QVBoxLayout() gbvbhb = QtGui.QHBoxLayout() btn = QtGui.QPushButton('unlock') btn.clicked.connect(self.unlock) gbvbhb.addWidget(btn) self.motorlock_enable_cb = QtGui.QCheckBox('motorlock', self, checkable=True, checked=True) self.motorlock_enable_cb.clicked.connect(self.motorlock_toggle) gbvbhb.addWidget(self.motorlock_enable_cb) btn = QtGui.QPushButton('set MCS zero (home)!') btn.clicked.connect(self.gui_set_mcs_zero) gbvbhb.addWidget(btn) btn = QtGui.QPushButton('set WCS zero!') btn.clicked.connect(self.gui_set_wcs_zero) gbvbhb.addWidget(btn) gbvb.addLayout(gbvbhb) gbvbhb = QtGui.QHBoxLayout() btn = QtGui.QPushButton('G0 go to MCS origin') btn.clicked.connect(self.go_to_mcs_origin) gbvbhb.addWidget(btn) btn = QtGui.QPushButton('G0 go to WCS origin') btn.clicked.connect(self.go_to_wcs_origin) gbvbhb.addWidget(btn) gbvb.addLayout(gbvbhb) gb.setLayout(gbvb) vbcontrols.addWidget(gb) gb = QtGui.QGroupBox('position:') gbvb = QtGui.QVBoxLayout() gbvbhb = QtGui.QHBoxLayout() btn = QtGui.QPushButton('get state') btn.clicked.connect(self.gui_get_state) gbvbhb.addWidget(btn) self.gui_get_state_online_cb = QtGui.QCheckBox('online', self, checkable=True, checked=False) self.gui_get_state_online_cb.clicked.connect(self.gui_get_state_online_cb_clicked) gbvbhb.addWidget(self.gui_get_state_online_cb) gbvb.addLayout(gbvbhb) gbvbhb = QtGui.QHBoxLayout() self.gui_info_state1 = QtGui.QLabel('state', self) self.gui_info_state2 = QtGui.QLabel('state', self) self.gui_info_mcs_x = QtGui.QLabel('MCS x', self) self.gui_info_mcs_y = QtGui.QLabel('MCS y', self) self.gui_info_wcs_x = QtGui.QLabel('WCS x', self) self.gui_info_wcs_y = QtGui.QLabel('WCS y', self) gbvb.addWidget(self.gui_info_state1) gbvb.addWidget(self.gui_info_state2) gbvbhb = QtGui.QHBoxLayout() gbvbhb.addWidget(self.gui_info_mcs_x) gbvbhb.addWidget(self.gui_info_mcs_y) # gbvb.addLayout(gbvbhb) #gbvbhb = QtGui.QHBoxLayout() gbvbhb.addWidget(self.gui_info_wcs_x) gbvbhb.addWidget(self.gui_info_wcs_y) gbvb.addLayout(gbvbhb) gbvb.addLayout(gbvbhb) gb.setLayout(gbvb) vbcontrols.addWidget(gb) gb = QtGui.QGroupBox('jogging controls:') gbvb = QtGui.QVBoxLayout() gbvbhb = QtGui.QHBoxLayout() #btn = QtGui.QPushButton('1') #btn.clicked.connect(self.unlock) #gbvbhb.addWidget(btn) self.gui_jog_stepsize = Spinner('jog step size (mm):', 1, step=1, guic=gbvbhb) self.gui_jog_feedrate = Spinner('feed rate (mm/min):', 5000, step=100, guic=gbvbhb) gbvb.addLayout(gbvbhb) horizontalGroupBox = QtGui.QGroupBox("") layout = QtGui.QGridLayout() layout.setColumnStretch(0, 1) layout.setColumnStretch(1, 1) layout.setColumnStretch(2, 1) def set_jogfun(what): def fun(): self.jog(what) return fun #d = {'what': '-x +y', 'n': 0, 'm': 0} def makebutton(d): btn = QtGui.QPushButton(d['what']) btn.clicked.connect(set_jogfun(d['what'])) layout.addWidget(btn,d['n'],d['m']) makebutton({'what': '-x +y', 'n': 0, 'm': 0}) makebutton({'what': '+y', 'n': 0, 'm': 1}) makebutton({'what': '+x +y', 'n': 0, 'm': 2}) makebutton({'what': '-x', 'n': 1, 'm': 0}) # makebutton({'what': '', 'n': 1, 'm': 1}) makebutton({'what': '+x', 'n': 1, 'm': 2}) makebutton({'what': '-x -y', 'n': 2, 'm': 0}) makebutton({'what': '-y', 'n': 2, 'm': 1}) makebutton({'what': '+x -y', 'n': 2, 'm': 2}) horizontalGroupBox.setLayout(layout) gbvb.addWidget(horizontalGroupBox) gb.setLayout(gbvb) vbcontrols.addWidget(gb) gb = QtGui.QGroupBox('absolute positioning:') gbvb = QtGui.QVBoxLayout() gbvbhb = QtGui.QHBoxLayout() self.gui_g1_xpos_mm = Spinner('x (mm):', 0, step=1, guic=gbvbhb) self.gui_g1_ypos_mm = Spinner('y (mm):', 0, step=1, guic=gbvbhb) gbvb.addLayout(gbvbhb) self.gui_g1_feedrate = Spinner('feed rate (mm/min):', 5000, step=100, guic=gbvb) gbvbhb = QtGui.QHBoxLayout() btn = QtGui.QPushButton('G0 GO') btn.clicked.connect(self.g0_go_to_position) gbvbhb.addWidget(btn) btn = QtGui.QPushButton('G1 GO') btn.clicked.connect(self.g1_go_to_position) gbvbhb.addWidget(btn) gbvb.addLayout(gbvbhb) gb.setLayout(gbvb) vbcontrols.addWidget(gb) gb = QtGui.QGroupBox('spindle control:') gbvb = QtGui.QVBoxLayout() gbvbhb = QtGui.QHBoxLayout() self.gui_spindlespeed = Spinner('spindle / servo:', 600, step=50, bounds=[0, 1000], guic=gbvbhb, fun=self.set_spindle_speed) self.gui_spindle_enable_cb = QtGui.QCheckBox('Spindle', self, checkable=True, checked=False) self.gui_spindle_enable_cb.clicked.connect(self.gui_spindle_enable_cb_clicked) gbvbhb.addWidget(self.gui_spindle_enable_cb) #btn = QtGui.QPushButton('ON') #btn.clicked.connect(self.set_spindle_on) #gbvbhb.addWidget(btn) #btn = QtGui.QPushButton('OFF') #btn.clicked.connect(self.set_spindle_off) #gbvbhb.addWidget(btn) gbvb.addLayout(gbvbhb) gb.setLayout(gbvb) vbcontrols.addWidget(gb) gb = QtGui.QGroupBox('G-code streaming:') gbvb = QtGui.QVBoxLayout() gbvbhb = QtGui.QHBoxLayout() l = QtGui.QLabel('file:') gbvbhb.addWidget(l) self.gcodefile_text = QtGui.QTextEdit(os.path.join(os.path.expanduser('~'), 'test.gcode')) self.gcodefile_text.setMinimumWidth(150) self.gcodefile_text.setMaximumHeight(30) gbvbhb.addWidget(self.gcodefile_text) btn = QtGui.QPushButton('...') btn.clicked.connect(self._browse_gcodefile) gbvbhb.addWidget(btn) btn = QtGui.QPushButton('load') btn.clicked.connect(self.gcode_load_file) gbvbhb.addWidget(btn) gbvb.addLayout(gbvbhb) gbvbhb = QtGui.QHBoxLayout() self.gcode_stream_progressbar = QtGui.QProgressBar(self) gbvbhb.addWidget(self.gcode_stream_progressbar) btn = QtGui.QPushButton('start streaming') btn.clicked.connect(self.gcode_stream_start) gbvbhb.addWidget(btn) btn = QtGui.QPushButton('stop streaming') btn.clicked.connect(self.gcode_stream_stop) gbvbhb.addWidget(btn) gbvb.addLayout(gbvbhb) self.gui_eta_info = QtGui.QLabel('--- streaming ETA info ---', self) gbvb.addWidget(self.gui_eta_info) gbvb.addLayout(gbvbhb) gb.setLayout(gbvb) vbcontrols.addWidget(gb) gb = QtGui.QGroupBox('') gbhb = QtGui.QHBoxLayout() btn = QtGui.QPushButton('FEED HOLD') btn.clicked.connect(self.feed_hold) btn.setMinimumHeight(60) gbhb.addWidget(btn) btn = QtGui.QPushButton('RESUME') btn.clicked.connect(self.feed_resume) btn.setMinimumHeight(60) gbhb.addWidget(btn) gb.setLayout(gbhb) vbcontrols.addWidget(gb) hbmain.addLayout(vbcontrols) hbmain.setStretch(0,2) hbmain.setStretch(1,1) hbmain.setStretch(2,1) self.setLayout(hbmain) self.setGeometry(20, 40, 1400, 900) self.setWindowTitle('Vplotter Controller') self.setStyleSheet("font-size: 12pt") self.show() self.scan() self.get_state_timer = QtCore.QTimer() self.get_state_timer.timeout.connect(self.gui_get_state) self.serial_active = False self.gcode_stream_running = False