Newer
Older
from PyQt5 import QtWidgets, QtCore
from pymeasure.display.widgets import TabWidget
class ControlTab(TabWidget, QtWidgets.QWidget):
def __init__(self, name, parent=None):
super().__init__(parent)
self.name = name
layout = QtWidgets.QGridLayout()
self.x_label = QtWidgets.QLabel("X Position:")
self.x_value = QtWidgets.QLabel(f"{self.stage.get_x_pos():.{3}f}mm")
layout.addWidget(self.x_label, 0, 0)
layout.addWidget(self.x_value, 0, 1)
self.y_label = QtWidgets.QLabel("Y Position:")
self.y_value = QtWidgets.QLabel(f"{self.stage.get_y_pos():.{3}f}mm")
layout.addWidget(self.y_label, 1, 0)
layout.addWidget(self.y_value, 1, 1)
self.z_value = QtWidgets.QLabel(f"{self.stage.get_z_pos():.{3}f}mm")
layout.addWidget(self.z_label, 2, 0)
layout.addWidget(self.z_value, 2, 1)
self.x_up_button = QtWidgets.QPushButton("X ←")
self.x_down_button = QtWidgets.QPushButton("X →")
layout.addWidget(self.x_up_button, 0, 2)
layout.addWidget(self.x_down_button, 0, 3)
self.y_up_button = QtWidgets.QPushButton("Y ↑")
self.y_down_button = QtWidgets.QPushButton("Y ↓")
layout.addWidget(self.y_up_button, 1, 2)
layout.addWidget(self.y_down_button, 1, 3)
self.z_up_button = QtWidgets.QPushButton("Focus ↑")
self.z_down_button = QtWidgets.QPushButton("Focus ↓")
layout.addWidget(self.z_up_button, 2, 2)
layout.addWidget(self.z_down_button, 2, 3)
self.setLayout(layout)
self.x_up_button.pressed.connect(self.jog_x_up)
self.x_up_button.released.connect(self.stop_jogs)
self.x_up_button.clicked.connect(self.increment_x_up)
self.x_down_button.pressed.connect(self.jog_x_down)
self.x_down_button.released.connect(self.stop_jogs)
self.x_down_button.clicked.connect(self.increment_x_down)
self.y_up_button.pressed.connect(self.jog_y_up)
self.y_up_button.released.connect(self.stop_jogs)
self.y_up_button.clicked.connect(self.increment_y_up)
self.y_down_button.pressed.connect(self.jog_y_down)
self.y_down_button.released.connect(self.stop_jogs)
self.y_down_button.clicked.connect(self.increment_y_down)
self.z_up_button.pressed.connect(self.jog_z_up)
self.z_up_button.released.connect(self.stop_jogs)
self.z_up_button.clicked.connect(self.increment_z_up)
self.z_down_button.pressed.connect(self.jog_z_down)
self.z_down_button.released.connect(self.stop_jogs)
self.z_down_button.clicked.connect(self.increment_z_down)
def stop_jogs(self):
self.stage.stop_all()
self.update_positions()
self.x_value.setText(f"{self.stage.get_x_pos():.{3}f}mm")
self.y_value.setText(f"{self.stage.get_y_pos():.{3}f}mm")
self.z_value.setText(f"{self.stage.get_z_pos():.{3}f}mm")