mirror of
https://github.com/bec-project/bec_widgets.git
synced 2025-07-14 11:41:49 +02:00
refactor: config_dialog.py hook_plot_tab_signals refactored
This commit is contained in:
@ -1,23 +1,16 @@
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
from bec_widgets.qt_utils import BECTable
|
|
||||||
from PyQt5 import uic
|
from PyQt5 import uic
|
||||||
from PyQt5.QtCore import pyqtSignal
|
from PyQt5.QtCore import pyqtSignal
|
||||||
from PyQt5.QtWidgets import (
|
from PyQt5.QtWidgets import (
|
||||||
QApplication,
|
QApplication,
|
||||||
QWidget,
|
QWidget,
|
||||||
QVBoxLayout,
|
QVBoxLayout,
|
||||||
QLineEdit,
|
|
||||||
QLabel,
|
|
||||||
QGroupBox,
|
|
||||||
QHBoxLayout,
|
|
||||||
QPushButton,
|
|
||||||
QTableWidgetItem,
|
|
||||||
QTableWidget,
|
QTableWidget,
|
||||||
QTabWidget,
|
QTabWidget,
|
||||||
|
QTableWidgetItem,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
current_path = os.path.dirname(__file__)
|
current_path = os.path.dirname(__file__)
|
||||||
Ui_Form, BaseClass = uic.loadUiType(os.path.join(current_path, "config_dialog.ui"))
|
Ui_Form, BaseClass = uic.loadUiType(os.path.join(current_path, "config_dialog.ui"))
|
||||||
Tab_Ui_Form, Tab_BaseClass = uic.loadUiType(os.path.join(current_path, "tab_template.ui"))
|
Tab_Ui_Form, Tab_BaseClass = uic.loadUiType(os.path.join(current_path, "tab_template.ui"))
|
||||||
@ -50,6 +43,13 @@ class ConfigDialog(QWidget, Ui_Form):
|
|||||||
self.add_new_scan(self.tabWidget_scan_types, "Default")
|
self.add_new_scan(self.tabWidget_scan_types, "Default")
|
||||||
|
|
||||||
def add_new_scan(self, parent_tab: QTabWidget, scan_name: str) -> None:
|
def add_new_scan(self, parent_tab: QTabWidget, scan_name: str) -> None:
|
||||||
|
"""
|
||||||
|
Add a new scan tab to the parent tab widget
|
||||||
|
|
||||||
|
Args:
|
||||||
|
parent_tab(QTabWidget): Parent tab widget, where to add scan tab
|
||||||
|
scan_name(str): Scan name
|
||||||
|
"""
|
||||||
# Create a new scan tab
|
# Create a new scan tab
|
||||||
scan_tab = QWidget()
|
scan_tab = QWidget()
|
||||||
scan_tab_layout = QVBoxLayout(scan_tab)
|
scan_tab_layout = QVBoxLayout(scan_tab)
|
||||||
@ -65,7 +65,13 @@ class ConfigDialog(QWidget, Ui_Form):
|
|||||||
# Add first plot
|
# Add first plot
|
||||||
self.add_new_plot(scan_tab)
|
self.add_new_plot(scan_tab)
|
||||||
|
|
||||||
def add_new_plot(self, scan_tab: QTabWidget) -> None:
|
def add_new_plot(self, scan_tab: QWidget) -> None:
|
||||||
|
"""
|
||||||
|
Add a new plot tab to the scan tab
|
||||||
|
Args:
|
||||||
|
scan_tab (QWidget): Scan tab widget
|
||||||
|
|
||||||
|
"""
|
||||||
# Create a new plot tab from .ui template
|
# Create a new plot tab from .ui template
|
||||||
plot_tab = QWidget()
|
plot_tab = QWidget()
|
||||||
plot_tab_ui = Tab_Ui_Form()
|
plot_tab_ui = Tab_Ui_Form()
|
||||||
@ -79,10 +85,39 @@ class ConfigDialog(QWidget, Ui_Form):
|
|||||||
# Hook signal
|
# Hook signal
|
||||||
self.hook_plot_tab_signals(scan_tab=scan_tab, plot_tab=plot_tab_ui)
|
self.hook_plot_tab_signals(scan_tab=scan_tab, plot_tab=plot_tab_ui)
|
||||||
|
|
||||||
def hook_plot_tab_signals(self, scan_tab: QTabWidget, plot_tab: QTabWidget) -> None:
|
def hook_plot_tab_signals(self, scan_tab: QTabWidget, plot_tab: Tab_Ui_Form) -> None:
|
||||||
|
"""
|
||||||
|
Hook signals of the plot tab
|
||||||
|
Args:
|
||||||
|
scan_tab(QTabWidget): Scan tab widget
|
||||||
|
plot_tab(Tab_Ui_Form): Plot tab widget
|
||||||
|
"""
|
||||||
plot_tab.pushButton_add_new_plot.clicked.connect(
|
plot_tab.pushButton_add_new_plot.clicked.connect(
|
||||||
lambda: self.add_new_plot(scan_tab=scan_tab)
|
lambda: self.add_new_plot(scan_tab=scan_tab)
|
||||||
)
|
)
|
||||||
|
plot_tab.pushButton_remove_current_plot.clicked.connect(
|
||||||
|
lambda: self.remove_current_plot(scan_tab.findChild(QTabWidget, "tabWidget_plots"))
|
||||||
|
)
|
||||||
|
plot_tab.pushButton_y_new.clicked.connect(
|
||||||
|
lambda: self.add_new_signal(
|
||||||
|
scan_tab.findChild(QTabWidget, "tabWidget_plots").table_y_signals
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
def remove_current_plot(self, plot_tab: QTabWidget) -> None:
|
||||||
|
current_index = plot_tab.currentIndex()
|
||||||
|
total_tabs = plot_tab.count()
|
||||||
|
# make sure that there is a tab to be removed
|
||||||
|
if current_index != -1 and total_tabs > 1:
|
||||||
|
plot_tab.removeTab(current_index)
|
||||||
|
|
||||||
|
def add_new_signal(self, table: QTableWidget) -> None:
|
||||||
|
row_position = table.rowCount()
|
||||||
|
table.insertRow(row_position)
|
||||||
|
table.setItem(row_position, 0, QTableWidgetItem(""))
|
||||||
|
table.setItem(row_position, 1, QTableWidgetItem(""))
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
def apply_config(self):
|
def apply_config(self):
|
||||||
...
|
...
|
||||||
|
Reference in New Issue
Block a user