def __init__(self, parent=None): super(ToolOffsetDialog, self).__init__(parent) self._color = QColor(0, 0, 0, 150) self._state = False self.setWindowModality(Qt.ApplicationModal) self.setWindowFlags(self.windowFlags() | Qt.Tool | Qt.Dialog | Qt.WindowStaysOnTopHint | Qt.WindowSystemMenuHint) self.setMinimumSize(200, 200) buttonBox = QDialogButtonBox() buttonBox.setEnabled(False) STATUS.connect('not-all-homed', lambda w, axis: buttonBox.setEnabled(False)) STATUS.connect('all-homed', lambda w: buttonBox.setEnabled(True)) STATUS.connect('state-estop', lambda w: buttonBox.setEnabled(False)) STATUS.connect('state-estop-reset', lambda w: buttonBox.setEnabled(STATUS.machine_is_on() and STATUS.is_all_homed())) for i in('X', 'Y', 'Z'): b = 'button_%s' % i self[b] = QPushButton('Zero %s' % i) self[b].clicked.connect(self.zeroPress('%s' % i)) buttonBox.addButton(self[b], 3) v = QVBoxLayout() h = QHBoxLayout() self._o = TOOLVIEW_WIDGET() self._o._hal_init() self.setLayout(v) v.addWidget(self._o) b = QPushButton('OK') b.clicked.connect(lambda: self.close()) h.addWidget(b) h.addWidget(buttonBox) v.addLayout(h) self.setModal(True)
def __init__(self, parent=None): super(ToolOffsetDialog, self).__init__(parent) self._color = QColor(0, 0, 0, 150) self._state = False self._request_name = 'TOOLOFFSET' self.setWindowModality(Qt.ApplicationModal) self.setWindowFlags(self.windowFlags() | Qt.Tool | Qt.Dialog | Qt.WindowStaysOnTopHint | Qt.WindowSystemMenuHint) self.setMinimumSize(200, 200) buttonBox = QDialogButtonBox() buttonBox.setEnabled(False) STATUS.connect('not-all-homed', lambda w, axis: buttonBox.setEnabled(False)) STATUS.connect('all-homed', lambda w: buttonBox.setEnabled(True)) STATUS.connect('state-estop', lambda w: buttonBox.setEnabled(False)) STATUS.connect( 'state-estop-reset', lambda w: buttonBox.setEnabled( STATUS.machine_is_on() and STATUS.is_all_homed())) for i in ('X', 'Y', 'Z'): b = 'button_%s' % i self[b] = QPushButton('Zero %s' % i) self[b].clicked.connect(self.zeroPress('%s' % i)) buttonBox.addButton(self[b], 3) v = QVBoxLayout() h = QHBoxLayout() self._o = TOOLVIEW_WIDGET() self._o._hal_init() self.setLayout(v) v.addWidget(self._o) b = QPushButton('OK') b.clicked.connect(lambda: self.close()) h.addWidget(b) h.addWidget(buttonBox) v.addLayout(h) self.setModal(True)
class ToolOffsetDialog(QDialog, _HalWidgetBase): def __init__(self, parent=None): super(ToolOffsetDialog, self).__init__(parent) self._color = QColor(0, 0, 0, 150) self._state = False self.setWindowModality(Qt.ApplicationModal) self.setWindowFlags(self.windowFlags() | Qt.Tool | Qt.Dialog | Qt.WindowStaysOnTopHint | Qt.WindowSystemMenuHint) self.setMinimumSize(200, 200) buttonBox = QDialogButtonBox() buttonBox.setEnabled(False) STATUS.connect('not-all-homed', lambda w, axis: buttonBox.setEnabled(False)) STATUS.connect('all-homed', lambda w: buttonBox.setEnabled(True)) STATUS.connect('state-estop', lambda w: buttonBox.setEnabled(False)) STATUS.connect('state-estop-reset', lambda w: buttonBox.setEnabled(STATUS.machine_is_on() and STATUS.is_all_homed())) for i in('X', 'Y', 'Z'): b = 'button_%s' % i self[b] = QPushButton('Zero %s' % i) self[b].clicked.connect(self.zeroPress('%s' % i)) buttonBox.addButton(self[b], 3) v = QVBoxLayout() h = QHBoxLayout() self._o = TOOLVIEW_WIDGET() self._o._hal_init() self.setLayout(v) v.addWidget(self._o) b = QPushButton('OK') b.clicked.connect(lambda: self.close()) h.addWidget(b) h.addWidget(buttonBox) v.addLayout(h) self.setModal(True) def _hal_init(self): x = self.geometry().x() y = self.geometry().y() w = self.geometry().width() h = self.geometry().height() geo = '%s %s %s %s'% (x,y,w,h) self._default_geometry=[x,y,w,h] if self.PREFS_: self._geometry_string = self.PREFS_.getpref('ToolOffsetDialog-geometry', geo, str, 'DIALOG_OPTIONS') else: self._geometry_string = 'default' self.topParent = self.QTVCP_INSTANCE_ STATUS.connect('dialog-request', self._external_request) def _external_request(self, w, cmd): if cmd == 'ORIGINOFFSET': self.load_dialog() # This weird code is just so we can get the axis # letter # using clicked.connect() apparently can't easily # add user data def zeroPress(self, data): def calluser(): self.zeroAxis(data) return calluser def zeroAxis(self, index): ACTION.SET_AXIS_ORIGIN(index, 0) def load_dialog(self): STATUS.emit('focus-overlay-changed', True, 'Set Origin Offsets', self._color) self.calculate_placement() self.show() self.exec_() STATUS.emit('focus-overlay-changed', False, None, None) record_geometry(self,'ToolOffsetDialog-geometry') def calculate_placement(self): geometry_parsing(self,'ToolOffsetDialog-geometry') # usual boiler code # (used so we can use code such as self[SomeDataName] def __getitem__(self, item): return getattr(self, item) def __setitem__(self, item, value): return setattr(self, item, value) # ********************** # Designer properties # ********************** @pyqtSlot(bool) def setState(self, value): self._state = value if value: self.show() else: self.hide() def getState(self): return self._state def resetState(self): self._state = False def getColor(self): return self._color def setColor(self, value): self._color = value def resetState(self): self._color = QColor(0, 0, 0, 150) state = pyqtProperty(bool, getState, setState, resetState) overlay_color = pyqtProperty(QColor, getColor, setColor)
def createWidget(self, parent): return ToolOffsetView(parent)
class ToolOffsetDialog(QDialog, _HalWidgetBase): def __init__(self, parent=None): super(ToolOffsetDialog, self).__init__(parent) self._color = QColor(0, 0, 0, 150) self._state = False self._request_name = 'TOOLOFFSET' self.setWindowModality(Qt.ApplicationModal) self.setWindowFlags(self.windowFlags() | Qt.Tool | Qt.Dialog | Qt.WindowStaysOnTopHint | Qt.WindowSystemMenuHint) self.setMinimumSize(200, 200) buttonBox = QDialogButtonBox() buttonBox.setEnabled(False) STATUS.connect('not-all-homed', lambda w, axis: buttonBox.setEnabled(False)) STATUS.connect('all-homed', lambda w: buttonBox.setEnabled(True)) STATUS.connect('state-estop', lambda w: buttonBox.setEnabled(False)) STATUS.connect( 'state-estop-reset', lambda w: buttonBox.setEnabled( STATUS.machine_is_on() and STATUS.is_all_homed())) for i in ('X', 'Y', 'Z'): b = 'button_%s' % i self[b] = QPushButton('Zero %s' % i) self[b].clicked.connect(self.zeroPress('%s' % i)) buttonBox.addButton(self[b], 3) v = QVBoxLayout() h = QHBoxLayout() self._o = TOOLVIEW_WIDGET() self._o._hal_init() self.setLayout(v) v.addWidget(self._o) b = QPushButton('OK') b.clicked.connect(lambda: self.close()) h.addWidget(b) h.addWidget(buttonBox) v.addLayout(h) self.setModal(True) def _hal_init(self): x = self.geometry().x() y = self.geometry().y() w = self.geometry().width() h = self.geometry().height() geo = '%s %s %s %s' % (x, y, w, h) self._default_geometry = [x, y, w, h] if self.PREFS_: self._geometry_string = self.PREFS_.getpref( 'ToolOffsetDialog-geometry', geo, str, 'DIALOG_OPTIONS') else: self._geometry_string = 'default' self.topParent = self.QTVCP_INSTANCE_ STATUS.connect('dialog-request', self._external_request) def _external_request(self, w, message): if message['NAME'] == self._request_name: self.load_dialog() # This weird code is just so we can get the axis # letter # using clicked.connect() apparently can't easily # add user data def zeroPress(self, data): def calluser(): self.zeroAxis(data) return calluser def zeroAxis(self, index): ACTION.SET_AXIS_ORIGIN(index, 0) def load_dialog(self): STATUS.emit('focus-overlay-changed', True, 'Set Origin Offsets', self._color) self.calculate_placement() self.show() self.exec_() STATUS.emit('focus-overlay-changed', False, None, None) record_geometry(self, 'ToolOffsetDialog-geometry') def calculate_placement(self): geometry_parsing(self, 'ToolOffsetDialog-geometry') # usual boiler code # (used so we can use code such as self[SomeDataName] def __getitem__(self, item): return getattr(self, item) def __setitem__(self, item, value): return setattr(self, item, value) # ********************** # Designer properties # ********************** @pyqtSlot(bool) def setState(self, value): self._state = value if value: self.show() else: self.hide() def getState(self): return self._state def resetState(self): self._state = False def getColor(self): return self._color def setColor(self, value): self._color = value def resetState(self): self._color = QColor(0, 0, 0, 150) state = pyqtProperty(bool, getState, setState, resetState) overlay_color = pyqtProperty(QColor, getColor, setColor)