0
0
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:
wyzula-jan
2023-09-05 10:04:22 +02:00
parent 83bd86e020
commit 5d6a328728
2 changed files with 170 additions and 51 deletions

View File

@ -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">

View File

@ -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