mirror of
https://github.com/bec-project/bec_widgets.git
synced 2025-07-14 11:41:49 +02:00
feat: go, set, save current coordinates and keyboard shortcuts
This commit is contained in:
@ -6,8 +6,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>1129</width>
|
<width>1219</width>
|
||||||
<height>550</height>
|
<height>668</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
@ -92,6 +92,53 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_6">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_2">
|
||||||
|
<property name="text">
|
||||||
|
<string>Decimal</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QSpinBox" name="spinBox_precision">
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>8</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>2</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="text">
|
||||||
|
<string>Step</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QDoubleSpinBox" name="spinBox_step">
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<double>0.100000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<double>0.100000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<double>1.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<property name="sizeConstraint">
|
<property name="sizeConstraint">
|
||||||
@ -99,6 +146,12 @@
|
|||||||
</property>
|
</property>
|
||||||
<item row="1" column="2" alignment="Qt::AlignHCenter|Qt::AlignVCenter">
|
<item row="1" column="2" alignment="Qt::AlignHCenter|Qt::AlignVCenter">
|
||||||
<widget class="QToolButton" name="toolButton_up">
|
<widget class="QToolButton" name="toolButton_up">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>26</width>
|
||||||
|
<height>26</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>...</string>
|
<string>...</string>
|
||||||
</property>
|
</property>
|
||||||
@ -122,6 +175,12 @@
|
|||||||
</item>
|
</item>
|
||||||
<item row="3" column="2" alignment="Qt::AlignHCenter|Qt::AlignVCenter">
|
<item row="3" column="2" alignment="Qt::AlignHCenter|Qt::AlignVCenter">
|
||||||
<widget class="QToolButton" name="toolButton_down">
|
<widget class="QToolButton" name="toolButton_down">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>26</width>
|
||||||
|
<height>26</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>...</string>
|
<string>...</string>
|
||||||
</property>
|
</property>
|
||||||
@ -132,6 +191,12 @@
|
|||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
<item row="2" column="1">
|
||||||
<widget class="QToolButton" name="toolButton_left">
|
<widget class="QToolButton" name="toolButton_left">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>26</width>
|
||||||
|
<height>26</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>...</string>
|
<string>...</string>
|
||||||
</property>
|
</property>
|
||||||
@ -155,6 +220,12 @@
|
|||||||
</item>
|
</item>
|
||||||
<item row="2" column="3">
|
<item row="2" column="3">
|
||||||
<widget class="QToolButton" name="toolButton_right">
|
<widget class="QToolButton" name="toolButton_right">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>26</width>
|
||||||
|
<height>26</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>...</string>
|
<string>...</string>
|
||||||
</property>
|
</property>
|
||||||
@ -189,19 +260,6 @@
|
|||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="2">
|
|
||||||
<widget class="QDoubleSpinBox" name="spinBox_step">
|
|
||||||
<property name="minimum">
|
|
||||||
<double>0.100000000000000</double>
|
|
||||||
</property>
|
|
||||||
<property name="singleStep">
|
|
||||||
<double>0.100000000000000</double>
|
|
||||||
</property>
|
|
||||||
<property name="value">
|
|
||||||
<double>1.000000000000000</double>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
@ -228,17 +286,39 @@
|
|||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
<item>
|
<item>
|
||||||
<layout class="QGridLayout" name="gridLayout_3">
|
<layout class="QGridLayout" name="gridLayout_3">
|
||||||
<item row="0" column="1">
|
<item row="1" column="1">
|
||||||
<widget class="QLabel" name="label_6">
|
<widget class="QDoubleSpinBox" name="spinBox_absolute_y">
|
||||||
<property name="text">
|
|
||||||
<string>X</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignCenter</set>
|
<set>Qt::AlignCenter</set>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<double>-500.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<double>500.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<double>0.100000000000000</double>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="2">
|
<item row="1" column="0">
|
||||||
|
<widget class="QDoubleSpinBox" name="spinBox_absolute_x">
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<double>-500.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<double>500.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<double>0.100000000000000</double>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
<widget class="QLabel" name="label_7">
|
<widget class="QLabel" name="label_7">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Y</string>
|
<string>Y</string>
|
||||||
@ -248,39 +328,41 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_6">
|
||||||
|
<property name="text">
|
||||||
|
<string>X</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="pushButton_save">
|
||||||
|
<property name="text">
|
||||||
|
<string>Save</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="pushButton_set">
|
||||||
|
<property name="text">
|
||||||
|
<string>Set</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
<widget class="QPushButton" name="pushButton_go_absolute">
|
<widget class="QPushButton" name="pushButton_go_absolute">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Go</string>
|
<string>Go</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="1">
|
|
||||||
<widget class="QDoubleSpinBox" name="spinBox_absolute_x">
|
|
||||||
<property name="minimum">
|
|
||||||
<double>-500.000000000000000</double>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<double>500.000000000000000</double>
|
|
||||||
</property>
|
|
||||||
<property name="singleStep">
|
|
||||||
<double>0.100000000000000</double>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="2">
|
|
||||||
<widget class="QDoubleSpinBox" name="spinBox_absolute_y">
|
|
||||||
<property name="minimum">
|
|
||||||
<double>-500.000000000000000</double>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<double>500.000000000000000</double>
|
|
||||||
</property>
|
|
||||||
<property name="singleStep">
|
|
||||||
<double>0.100000000000000</double>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
@ -302,7 +384,7 @@
|
|||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>0</number>
|
<number>2</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="tab_coordinates">
|
<widget class="QWidget" name="tab_coordinates">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
@ -353,6 +435,9 @@
|
|||||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QGroupBox" name="motorLimits">
|
<widget class="QGroupBox" name="motorLimits">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string>Motor Limits</string>
|
<string>Motor Limits</string>
|
||||||
</property>
|
</property>
|
||||||
@ -569,6 +654,16 @@
|
|||||||
<string>Queue</string>
|
<string>Queue</string>
|
||||||
</attribute>
|
</attribute>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_3">
|
||||||
|
<property name="text">
|
||||||
|
<string>Work in progress</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="pushButton_5">
|
<widget class="QPushButton" name="pushButton_5">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
|
@ -69,7 +69,7 @@ class MotorApp(QWidget):
|
|||||||
self.tag_N = 1 # position label for saved coordinates
|
self.tag_N = 1 # position label for saved coordinates
|
||||||
|
|
||||||
# Get all motors available
|
# Get all motors available
|
||||||
self.motor_thread.retrieve_all_motors()
|
self.motor_thread.retrieve_all_motors() # TODO link to combobox that it always refresh
|
||||||
|
|
||||||
def connect_motor(self, motor_x_name: str, motor_y_name: str):
|
def connect_motor(self, motor_x_name: str, motor_y_name: str):
|
||||||
"""
|
"""
|
||||||
@ -265,14 +265,28 @@ class MotorApp(QWidget):
|
|||||||
self.spinBox_absolute_x.value(), self.spinBox_absolute_y.value()
|
self.spinBox_absolute_x.value(), self.spinBox_absolute_y.value()
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Go absolute button
|
||||||
self.pushButton_go_absolute.clicked.connect(self.save_absolute_coordinates)
|
self.pushButton_go_absolute.clicked.connect(self.save_absolute_coordinates)
|
||||||
self.pushButton_go_absolute.setShortcut("Ctrl+G")
|
self.pushButton_go_absolute.setShortcut("Ctrl+G")
|
||||||
self.pushButton_go_absolute.setToolTip("Ctrl+G")
|
self.pushButton_go_absolute.setToolTip("Ctrl+G")
|
||||||
|
|
||||||
|
# Set absolute coordinates
|
||||||
|
self.pushButton_set.clicked.connect(self.save_absolute_coordinates)
|
||||||
|
self.pushButton_set.setShortcut("Ctrl+S")
|
||||||
|
self.pushButton_set.setToolTip("Ctrl+S")
|
||||||
|
|
||||||
|
# Save Current coordinates
|
||||||
|
self.pushButton_save.clicked.connect(self.save_current_coordinates)
|
||||||
|
self.pushButton_save.setShortcut("Ctrl+D")
|
||||||
|
self.pushButton_save.setToolTip("Ctrl+D")
|
||||||
|
|
||||||
self.motor_thread.move_finished.connect(lambda: self.enable_motor_controls(True))
|
self.motor_thread.move_finished.connect(lambda: self.enable_motor_controls(True))
|
||||||
|
|
||||||
# Stop Button
|
# Stop Button
|
||||||
self.pushButton_stop.clicked.connect(self.motor_thread.stop_movement)
|
self.pushButton_stop.clicked.connect(self.motor_thread.stop_movement)
|
||||||
|
self.pushButton_stop.setShortcut("Ctrl+X")
|
||||||
|
self.pushButton_stop.setToolTip("Ctrl+X")
|
||||||
|
|
||||||
##########################
|
##########################
|
||||||
# Motor Configs
|
# Motor Configs
|
||||||
@ -453,7 +467,17 @@ class MotorApp(QWidget):
|
|||||||
self.tableWidget_coordinates,
|
self.tableWidget_coordinates,
|
||||||
(self.spinBox_absolute_x.value(), self.spinBox_absolute_y.value()),
|
(self.spinBox_absolute_x.value(), self.spinBox_absolute_y.value()),
|
||||||
tag=f"Pos {self.tag_N}",
|
tag=f"Pos {self.tag_N}",
|
||||||
precision=0,
|
precision=self.spinBox_precision.value(),
|
||||||
|
)
|
||||||
|
|
||||||
|
self.tag_N += 1
|
||||||
|
|
||||||
|
def save_current_coordinates(self):
|
||||||
|
self.generate_table_coordinate(
|
||||||
|
self.tableWidget_coordinates,
|
||||||
|
self.motor_thread.retrieve_coordinates(),
|
||||||
|
tag=f"Current {self.tag_N}",
|
||||||
|
precision=self.spinBox_precision.value(),
|
||||||
)
|
)
|
||||||
|
|
||||||
self.tag_N += 1
|
self.tag_N += 1
|
||||||
|
Reference in New Issue
Block a user