Preparing floating plotting window

This commit is contained in:
2025-04-25 17:29:36 +02:00
committed by Sven
parent 8f7c72d18f
commit db654f9465
4 changed files with 930 additions and 0 deletions

0
OpticsPlot.py Normal file
View File

335
ui/OpticsPlotGui.py Normal file
View File

@@ -0,0 +1,335 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'ui/OpticsPlotGui.ui'
#
# Created by: PyQt5 UI code generator 5.15.10
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_OpticsGUI(object):
def setupUi(self, OpticsGUI):
OpticsGUI.setObjectName("OpticsGUI")
OpticsGUI.resize(1605, 1023)
self.centralwidget = QtWidgets.QWidget(OpticsGUI)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.centralwidget)
self.verticalLayout_4.setObjectName("verticalLayout_4")
self.TabMaster = QtWidgets.QTabWidget(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.TabMaster.sizePolicy().hasHeightForWidth())
self.TabMaster.setSizePolicy(sizePolicy)
self.TabMaster.setObjectName("TabMaster")
self.tab_3 = QtWidgets.QWidget()
self.tab_3.setObjectName("tab_3")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.tab_3)
self.horizontalLayout.setObjectName("horizontalLayout")
self.widget_2 = QtWidgets.QWidget(self.tab_3)
self.widget_2.setObjectName("widget_2")
self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.widget_2)
self.verticalLayout_5.setObjectName("verticalLayout_5")
self.label_31 = QtWidgets.QLabel(self.widget_2)
self.label_31.setObjectName("label_31")
self.verticalLayout_5.addWidget(self.label_31)
self.gridLayout_4 = QtWidgets.QGridLayout()
self.gridLayout_4.setObjectName("gridLayout_4")
self.PBetax = QtWidgets.QPushButton(self.widget_2)
self.PBetax.setCheckable(True)
self.PBetax.setObjectName("PBetax")
self.gridLayout_4.addWidget(self.PBetax, 0, 0, 1, 1)
self.PBetay = QtWidgets.QPushButton(self.widget_2)
self.PBetay.setCheckable(True)
self.PBetay.setObjectName("PBetay")
self.gridLayout_4.addWidget(self.PBetay, 0, 1, 1, 1)
self.PAlphax = QtWidgets.QPushButton(self.widget_2)
self.PAlphax.setCheckable(True)
self.PAlphax.setObjectName("PAlphax")
self.gridLayout_4.addWidget(self.PAlphax, 1, 0, 1, 1)
self.PAlphay = QtWidgets.QPushButton(self.widget_2)
self.PAlphay.setCheckable(True)
self.PAlphay.setObjectName("PAlphay")
self.gridLayout_4.addWidget(self.PAlphay, 1, 1, 1, 1)
self.PEtax = QtWidgets.QPushButton(self.widget_2)
self.PEtax.setCheckable(True)
self.PEtax.setObjectName("PEtax")
self.gridLayout_4.addWidget(self.PEtax, 2, 0, 1, 1)
self.PEtay = QtWidgets.QPushButton(self.widget_2)
self.PEtay.setCheckable(True)
self.PEtay.setObjectName("PEtay")
self.gridLayout_4.addWidget(self.PEtay, 2, 1, 1, 1)
self.PR56 = QtWidgets.QPushButton(self.widget_2)
self.PR56.setCheckable(True)
self.PR56.setObjectName("PR56")
self.gridLayout_4.addWidget(self.PR56, 3, 0, 1, 1)
self.PEnergy = QtWidgets.QPushButton(self.widget_2)
self.PEnergy.setEnabled(False)
self.PEnergy.setCheckable(True)
self.PEnergy.setObjectName("PEnergy")
self.gridLayout_4.addWidget(self.PEnergy, 3, 1, 1, 1)
self.verticalLayout_5.addLayout(self.gridLayout_4)
self.gridLayout_5 = QtWidgets.QGridLayout()
self.gridLayout_5.setObjectName("gridLayout_5")
self.label_22 = QtWidgets.QLabel(self.widget_2)
self.label_22.setObjectName("label_22")
self.gridLayout_5.addWidget(self.label_22, 0, 0, 1, 1)
self.PStart = QtWidgets.QLineEdit(self.widget_2)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.PStart.sizePolicy().hasHeightForWidth())
self.PStart.setSizePolicy(sizePolicy)
self.PStart.setObjectName("PStart")
self.gridLayout_5.addWidget(self.PStart, 0, 1, 1, 1)
self.label_21 = QtWidgets.QLabel(self.widget_2)
self.label_21.setObjectName("label_21")
self.gridLayout_5.addWidget(self.label_21, 1, 0, 1, 1)
self.PEnd = QtWidgets.QLineEdit(self.widget_2)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.PEnd.sizePolicy().hasHeightForWidth())
self.PEnd.setSizePolicy(sizePolicy)
self.PEnd.setObjectName("PEnd")
self.gridLayout_5.addWidget(self.PEnd, 1, 1, 1, 1)
self.verticalLayout_5.addLayout(self.gridLayout_5)
spacerItem = QtWidgets.QSpacerItem(20, 175, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_5.addItem(spacerItem)
self.pushButton = QtWidgets.QPushButton(self.widget_2)
self.pushButton.setObjectName("pushButton")
self.verticalLayout_5.addWidget(self.pushButton)
self.pushButton_2 = QtWidgets.QPushButton(self.widget_2)
self.pushButton_2.setObjectName("pushButton_2")
self.verticalLayout_5.addWidget(self.pushButton_2)
self.pushButton_3 = QtWidgets.QPushButton(self.widget_2)
self.pushButton_3.setObjectName("pushButton_3")
self.verticalLayout_5.addWidget(self.pushButton_3)
self.horizontalLayout.addWidget(self.widget_2)
self.mplwindow = QtWidgets.QWidget(self.tab_3)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.mplwindow.sizePolicy().hasHeightForWidth())
self.mplwindow.setSizePolicy(sizePolicy)
self.mplwindow.setMinimumSize(QtCore.QSize(900, 0))
self.mplwindow.setObjectName("mplwindow")
self.mplvl = QtWidgets.QVBoxLayout(self.mplwindow)
self.mplvl.setObjectName("mplvl")
self.horizontalLayout.addWidget(self.mplwindow)
self.TabMaster.addTab(self.tab_3, "")
self.tab_4 = QtWidgets.QWidget()
self.tab_4.setObjectName("tab_4")
self.verticalLayout_13 = QtWidgets.QVBoxLayout(self.tab_4)
self.verticalLayout_13.setObjectName("verticalLayout_13")
self.verticalLayout_12 = QtWidgets.QVBoxLayout()
self.verticalLayout_12.setObjectName("verticalLayout_12")
self.UITwissValues = QtWidgets.QTableWidget(self.tab_4)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.UITwissValues.sizePolicy().hasHeightForWidth())
self.UITwissValues.setSizePolicy(sizePolicy)
self.UITwissValues.setObjectName("UITwissValues")
self.UITwissValues.setColumnCount(0)
self.UITwissValues.setRowCount(0)
self.verticalLayout_12.addWidget(self.UITwissValues)
self.verticalLayout_13.addLayout(self.verticalLayout_12)
self.TabMaster.addTab(self.tab_4, "")
self.verticalLayout_4.addWidget(self.TabMaster)
OpticsGUI.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(OpticsGUI)
self.menubar.setGeometry(QtCore.QRect(0, 0, 1605, 22))
self.menubar.setObjectName("menubar")
OpticsGUI.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(OpticsGUI)
self.statusbar.setObjectName("statusbar")
OpticsGUI.setStatusBar(self.statusbar)
self.actionNew = QtWidgets.QAction(OpticsGUI)
self.actionNew.setObjectName("actionNew")
self.actionOpen = QtWidgets.QAction(OpticsGUI)
self.actionOpen.setObjectName("actionOpen")
self.actionSave_Model = QtWidgets.QAction(OpticsGUI)
self.actionSave_Model.setObjectName("actionSave_Model")
self.actionSave_Model_as = QtWidgets.QAction(OpticsGUI)
self.actionSave_Model_as.setObjectName("actionSave_Model_as")
self.actionNew_Script = QtWidgets.QAction(OpticsGUI)
self.actionNew_Script.setObjectName("actionNew_Script")
self.actionDuplicate_Script = QtWidgets.QAction(OpticsGUI)
self.actionDuplicate_Script.setObjectName("actionDuplicate_Script")
self.actionTrack = QtWidgets.QAction(OpticsGUI)
self.actionTrack.setObjectName("actionTrack")
self.actionMatch = QtWidgets.QAction(OpticsGUI)
self.actionMatch.setObjectName("actionMatch")
self.actionQuit = QtWidgets.QAction(OpticsGUI)
self.actionQuit.setEnabled(True)
self.actionQuit.setShortcut("")
self.actionQuit.setObjectName("actionQuit")
self.actionExport_Lattice = QtWidgets.QAction(OpticsGUI)
self.actionExport_Lattice.setEnabled(True)
self.actionExport_Lattice.setObjectName("actionExport_Lattice")
self.actionExport_Magnet_Settings = QtWidgets.QAction(OpticsGUI)
self.actionExport_Magnet_Settings.setEnabled(False)
self.actionExport_Magnet_Settings.setObjectName("actionExport_Magnet_Settings")
self.actionInfo = QtWidgets.QAction(OpticsGUI)
self.actionInfo.setEnabled(True)
self.actionInfo.setObjectName("actionInfo")
self.actionWebsite = QtWidgets.QAction(OpticsGUI)
self.actionWebsite.setEnabled(False)
self.actionWebsite.setObjectName("actionWebsite")
self.actionLoad_Settings_from_Model = QtWidgets.QAction(OpticsGUI)
self.actionLoad_Settings_from_Model.setEnabled(True)
self.actionLoad_Settings_from_Model.setObjectName("actionLoad_Settings_from_Model")
self.actionUpdate_Model = QtWidgets.QAction(OpticsGUI)
self.actionUpdate_Model.setEnabled(False)
self.actionUpdate_Model.setObjectName("actionUpdate_Model")
self.actionLoad_Settings_from_Machine = QtWidgets.QAction(OpticsGUI)
self.actionLoad_Settings_from_Machine.setEnabled(False)
self.actionLoad_Settings_from_Machine.setObjectName("actionLoad_Settings_from_Machine")
self.actionOpen_Script = QtWidgets.QAction(OpticsGUI)
self.actionOpen_Script.setObjectName("actionOpen_Script")
self.actionSave_Script = QtWidgets.QAction(OpticsGUI)
self.actionSave_Script.setObjectName("actionSave_Script")
self.actionCut = QtWidgets.QAction(OpticsGUI)
self.actionCut.setObjectName("actionCut")
self.actionCopy = QtWidgets.QAction(OpticsGUI)
self.actionCopy.setObjectName("actionCopy")
self.actionPaste = QtWidgets.QAction(OpticsGUI)
self.actionPaste.setObjectName("actionPaste")
self.actionRefreshSettings = QtWidgets.QAction(OpticsGUI)
self.actionRefreshSettings.setCheckable(False)
self.actionRefreshSettings.setObjectName("actionRefreshSettings")
self.actionLoad_From_Machine = QtWidgets.QAction(OpticsGUI)
self.actionLoad_From_Machine.setEnabled(True)
self.actionLoad_From_Machine.setObjectName("actionLoad_From_Machine")
self.actionUpdate_RF_in_Model = QtWidgets.QAction(OpticsGUI)
self.actionUpdate_RF_in_Model.setEnabled(True)
self.actionUpdate_RF_in_Model.setObjectName("actionUpdate_RF_in_Model")
self.actionEnforce_Energy_Profile = QtWidgets.QAction(OpticsGUI)
self.actionEnforce_Energy_Profile.setEnabled(True)
self.actionEnforce_Energy_Profile.setObjectName("actionEnforce_Energy_Profile")
self.actionSerach = QtWidgets.QAction(OpticsGUI)
self.actionSerach.setObjectName("actionSerach")
self.actionExport_Lattice_for_Elegant = QtWidgets.QAction(OpticsGUI)
self.actionExport_Lattice_for_Elegant.setEnabled(True)
self.actionExport_Lattice_for_Elegant.setObjectName("actionExport_Lattice_for_Elegant")
self.actionTrack_Elegant = QtWidgets.QAction(OpticsGUI)
self.actionTrack_Elegant.setEnabled(True)
self.actionTrack_Elegant.setObjectName("actionTrack_Elegant")
self.actionReduce_Distribution = QtWidgets.QAction(OpticsGUI)
self.actionReduce_Distribution.setCheckable(True)
self.actionReduce_Distribution.setChecked(True)
self.actionReduce_Distribution.setObjectName("actionReduce_Distribution")
self.actionExclude_Space_Charge = QtWidgets.QAction(OpticsGUI)
self.actionExclude_Space_Charge.setCheckable(True)
self.actionExclude_Space_Charge.setChecked(True)
self.actionExclude_Space_Charge.setObjectName("actionExclude_Space_Charge")
self.actionExclude_CSR = QtWidgets.QAction(OpticsGUI)
self.actionExclude_CSR.setCheckable(True)
self.actionExclude_CSR.setChecked(True)
self.actionExclude_CSR.setObjectName("actionExclude_CSR")
self.actionTest = QtWidgets.QAction(OpticsGUI)
self.actionTest.setObjectName("actionTest")
self.actionImport_Initial_Distribution = QtWidgets.QAction(OpticsGUI)
self.actionImport_Initial_Distribution.setEnabled(True)
self.actionImport_Initial_Distribution.setObjectName("actionImport_Initial_Distribution")
self.actionLoad_From_LongTracker = QtWidgets.QAction(OpticsGUI)
self.actionLoad_From_LongTracker.setObjectName("actionLoad_From_LongTracker")
self.actionUpdate_Undulator_in_Model = QtWidgets.QAction(OpticsGUI)
self.actionUpdate_Undulator_in_Model.setObjectName("actionUpdate_Undulator_in_Model")
self.actionBackup = QtWidgets.QAction(OpticsGUI)
self.actionBackup.setObjectName("actionBackup")
self.actionExport_Optics_Function = QtWidgets.QAction(OpticsGUI)
self.actionExport_Optics_Function.setObjectName("actionExport_Optics_Function")
self.actionExport_Optics_Functions = QtWidgets.QAction(OpticsGUI)
self.actionExport_Optics_Functions.setObjectName("actionExport_Optics_Functions")
self.actionLoad_Reference = QtWidgets.QAction(OpticsGUI)
self.actionLoad_Reference.setObjectName("actionLoad_Reference")
self.actionSave_Reference = QtWidgets.QAction(OpticsGUI)
self.actionSave_Reference.setObjectName("actionSave_Reference")
self.actionNew_Reference = QtWidgets.QAction(OpticsGUI)
self.actionNew_Reference.setObjectName("actionNew_Reference")
self.retranslateUi(OpticsGUI)
self.TabMaster.setCurrentIndex(0)
self.actionQuit.triggered.connect(OpticsGUI.close) # type: ignore
QtCore.QMetaObject.connectSlotsByName(OpticsGUI)
def retranslateUi(self, OpticsGUI):
_translate = QtCore.QCoreApplication.translate
OpticsGUI.setWindowTitle(_translate("OpticsGUI", "SwissFEL Optics"))
self.label_31.setText(_translate("OpticsGUI", "Plotting"))
self.PBetax.setText(_translate("OpticsGUI", "Betax"))
self.PBetay.setText(_translate("OpticsGUI", "Betay"))
self.PAlphax.setText(_translate("OpticsGUI", "Alphax"))
self.PAlphay.setText(_translate("OpticsGUI", "AlphaY"))
self.PEtax.setText(_translate("OpticsGUI", "Etax"))
self.PEtay.setText(_translate("OpticsGUI", "Etay"))
self.PR56.setText(_translate("OpticsGUI", "R56"))
self.PEnergy.setText(_translate("OpticsGUI", "Energy"))
self.label_22.setText(_translate("OpticsGUI", "Plot Start"))
self.PStart.setText(_translate("OpticsGUI", "0"))
self.label_21.setText(_translate("OpticsGUI", "Plot End"))
self.PEnd.setText(_translate("OpticsGUI", "1000"))
self.pushButton.setText(_translate("OpticsGUI", "Save Current Optics as Reference"))
self.pushButton_2.setText(_translate("OpticsGUI", "Export Optics"))
self.pushButton_3.setText(_translate("OpticsGUI", "Copy Entry as New Reference Point"))
self.TabMaster.setTabText(self.TabMaster.indexOf(self.tab_3), _translate("OpticsGUI", "Plot"))
self.TabMaster.setTabText(self.TabMaster.indexOf(self.tab_4), _translate("OpticsGUI", "Values"))
self.actionNew.setText(_translate("OpticsGUI", "New Model"))
self.actionNew.setShortcut(_translate("OpticsGUI", "Ctrl+N"))
self.actionOpen.setText(_translate("OpticsGUI", "Open Model..."))
self.actionOpen.setShortcut(_translate("OpticsGUI", "Ctrl+O"))
self.actionSave_Model.setText(_translate("OpticsGUI", "Save Model"))
self.actionSave_Model.setShortcut(_translate("OpticsGUI", "Ctrl+S"))
self.actionSave_Model_as.setText(_translate("OpticsGUI", "Save Model as ..."))
self.actionNew_Script.setText(_translate("OpticsGUI", "New Script..."))
self.actionNew_Script.setShortcut(_translate("OpticsGUI", "Ctrl+Shift+N"))
self.actionDuplicate_Script.setText(_translate("OpticsGUI", "Save Script as..."))
self.actionTrack.setText(_translate("OpticsGUI", "Track"))
self.actionTrack.setShortcut(_translate("OpticsGUI", "Ctrl+T"))
self.actionMatch.setText(_translate("OpticsGUI", "Match"))
self.actionMatch.setShortcut(_translate("OpticsGUI", "Ctrl+M"))
self.actionQuit.setText(_translate("OpticsGUI", "Quit"))
self.actionExport_Lattice.setText(_translate("OpticsGUI", "Export Lattice..."))
self.actionExport_Magnet_Settings.setText(_translate("OpticsGUI", "Export Magnet Settings..."))
self.actionInfo.setText(_translate("OpticsGUI", "Info..."))
self.actionWebsite.setText(_translate("OpticsGUI", "Website..."))
self.actionLoad_Settings_from_Model.setText(_translate("OpticsGUI", "Load Settings from Model"))
self.actionUpdate_Model.setText(_translate("OpticsGUI", "Update Model"))
self.actionLoad_Settings_from_Machine.setText(_translate("OpticsGUI", "Load Settings from Machine"))
self.actionOpen_Script.setText(_translate("OpticsGUI", "Open Script..."))
self.actionOpen_Script.setShortcut(_translate("OpticsGUI", "Ctrl+Shift+O"))
self.actionSave_Script.setText(_translate("OpticsGUI", "Save Script"))
self.actionSave_Script.setShortcut(_translate("OpticsGUI", "Ctrl+Shift+S"))
self.actionCut.setText(_translate("OpticsGUI", "Cut"))
self.actionCut.setShortcut(_translate("OpticsGUI", "Ctrl+X"))
self.actionCopy.setText(_translate("OpticsGUI", "Copy"))
self.actionCopy.setShortcut(_translate("OpticsGUI", "Ctrl+C"))
self.actionPaste.setText(_translate("OpticsGUI", "Paste"))
self.actionPaste.setShortcut(_translate("OpticsGUI", "Ctrl+V"))
self.actionRefreshSettings.setText(_translate("OpticsGUI", "Refresh"))
self.actionLoad_From_Machine.setText(_translate("OpticsGUI", "Load From Machine"))
self.actionUpdate_RF_in_Model.setText(_translate("OpticsGUI", "Update RF in Model"))
self.actionEnforce_Energy_Profile.setText(_translate("OpticsGUI", "Enforce Energy Profile"))
self.actionSerach.setText(_translate("OpticsGUI", "Serach..."))
self.actionExport_Lattice_for_Elegant.setText(_translate("OpticsGUI", "Export Lattice for Elegant..."))
self.actionTrack_Elegant.setText(_translate("OpticsGUI", "Track (Blocking)"))
self.actionTrack_Elegant.setShortcut(_translate("OpticsGUI", "Ctrl+Shift+T"))
self.actionReduce_Distribution.setText(_translate("OpticsGUI", "Reduce Input Distribution"))
self.actionExclude_Space_Charge.setText(_translate("OpticsGUI", "Exclude Space Charge"))
self.actionExclude_CSR.setText(_translate("OpticsGUI", "Exclude CSR"))
self.actionTest.setText(_translate("OpticsGUI", "Test"))
self.actionImport_Initial_Distribution.setText(_translate("OpticsGUI", "Import Initial Distribution..."))
self.actionLoad_From_LongTracker.setText(_translate("OpticsGUI", "Load From LongTracker..."))
self.actionUpdate_Undulator_in_Model.setText(_translate("OpticsGUI", "Update Undulator in Model"))
self.actionBackup.setText(_translate("OpticsGUI", "Backup Files"))
self.actionExport_Optics_Function.setText(_translate("OpticsGUI", "Export Optics Function..."))
self.actionExport_Optics_Functions.setText(_translate("OpticsGUI", "Export Optical Functions..."))
self.actionLoad_Reference.setText(_translate("OpticsGUI", "Load Reference..."))
self.actionSave_Reference.setText(_translate("OpticsGUI", "Save Reference"))
self.actionNew_Reference.setText(_translate("OpticsGUI", "New Reference"))

594
ui/OpticsPlotGui.ui Normal file
View File

@@ -0,0 +1,594 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>OpticsGUI</class>
<widget class="QMainWindow" name="OpticsGUI">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1605</width>
<height>1023</height>
</rect>
</property>
<property name="windowTitle">
<string>SwissFEL Optics</string>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QTabWidget" name="TabMaster">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab_3">
<attribute name="title">
<string>Plot</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QWidget" name="widget_2" native="true">
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QLabel" name="label_31">
<property name="text">
<string>Plotting</string>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0">
<widget class="QPushButton" name="PBetax">
<property name="text">
<string>Betax</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="PBetay">
<property name="text">
<string>Betay</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="PAlphax">
<property name="text">
<string>Alphax</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QPushButton" name="PAlphay">
<property name="text">
<string>AlphaY</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QPushButton" name="PEtax">
<property name="text">
<string>Etax</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QPushButton" name="PEtay">
<property name="text">
<string>Etay</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QPushButton" name="PR56">
<property name="text">
<string>R56</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QPushButton" name="PEnergy">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Energy</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="0">
<widget class="QLabel" name="label_22">
<property name="text">
<string>Plot Start</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="PStart">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>0</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_21">
<property name="text">
<string>Plot End</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="PEnd">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>1000</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>175</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>Save Current Optics as Reference</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_2">
<property name="text">
<string>Export Optics</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_3">
<property name="text">
<string>Copy Entry as New Reference Point</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="mplwindow" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>900</width>
<height>0</height>
</size>
</property>
<layout class="QVBoxLayout" name="mplvl"/>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_4">
<attribute name="title">
<string>Values</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_13">
<item>
<layout class="QVBoxLayout" name="verticalLayout_12">
<item>
<widget class="QTableWidget" name="UITwissValues">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1605</width>
<height>22</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
<action name="actionNew">
<property name="text">
<string>New Model</string>
</property>
<property name="shortcut">
<string>Ctrl+N</string>
</property>
</action>
<action name="actionOpen">
<property name="text">
<string>Open Model...</string>
</property>
<property name="shortcut">
<string>Ctrl+O</string>
</property>
</action>
<action name="actionSave_Model">
<property name="text">
<string>Save Model</string>
</property>
<property name="shortcut">
<string>Ctrl+S</string>
</property>
</action>
<action name="actionSave_Model_as">
<property name="text">
<string>Save Model as ...</string>
</property>
</action>
<action name="actionNew_Script">
<property name="text">
<string>New Script...</string>
</property>
<property name="shortcut">
<string>Ctrl+Shift+N</string>
</property>
</action>
<action name="actionDuplicate_Script">
<property name="text">
<string>Save Script as...</string>
</property>
</action>
<action name="actionTrack">
<property name="text">
<string>Track</string>
</property>
<property name="shortcut">
<string>Ctrl+T</string>
</property>
</action>
<action name="actionMatch">
<property name="text">
<string>Match</string>
</property>
<property name="shortcut">
<string>Ctrl+M</string>
</property>
</action>
<action name="actionQuit">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Quit</string>
</property>
<property name="shortcut">
<string/>
</property>
</action>
<action name="actionExport_Lattice">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Export Lattice...</string>
</property>
</action>
<action name="actionExport_Magnet_Settings">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Export Magnet Settings...</string>
</property>
</action>
<action name="actionInfo">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Info...</string>
</property>
</action>
<action name="actionWebsite">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Website...</string>
</property>
</action>
<action name="actionLoad_Settings_from_Model">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Load Settings from Model</string>
</property>
</action>
<action name="actionUpdate_Model">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Update Model</string>
</property>
</action>
<action name="actionLoad_Settings_from_Machine">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Load Settings from Machine</string>
</property>
</action>
<action name="actionOpen_Script">
<property name="text">
<string>Open Script...</string>
</property>
<property name="shortcut">
<string>Ctrl+Shift+O</string>
</property>
</action>
<action name="actionSave_Script">
<property name="text">
<string>Save Script</string>
</property>
<property name="shortcut">
<string>Ctrl+Shift+S</string>
</property>
</action>
<action name="actionCut">
<property name="text">
<string>Cut</string>
</property>
<property name="shortcut">
<string>Ctrl+X</string>
</property>
</action>
<action name="actionCopy">
<property name="text">
<string>Copy</string>
</property>
<property name="shortcut">
<string>Ctrl+C</string>
</property>
</action>
<action name="actionPaste">
<property name="text">
<string>Paste</string>
</property>
<property name="shortcut">
<string>Ctrl+V</string>
</property>
</action>
<action name="actionRefreshSettings">
<property name="checkable">
<bool>false</bool>
</property>
<property name="text">
<string>Refresh</string>
</property>
</action>
<action name="actionLoad_From_Machine">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Load From Machine</string>
</property>
</action>
<action name="actionUpdate_RF_in_Model">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Update RF in Model</string>
</property>
</action>
<action name="actionEnforce_Energy_Profile">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Enforce Energy Profile</string>
</property>
</action>
<action name="actionSerach">
<property name="text">
<string>Serach...</string>
</property>
</action>
<action name="actionExport_Lattice_for_Elegant">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Export Lattice for Elegant...</string>
</property>
</action>
<action name="actionTrack_Elegant">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Track (Blocking)</string>
</property>
<property name="shortcut">
<string>Ctrl+Shift+T</string>
</property>
</action>
<action name="actionReduce_Distribution">
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>true</bool>
</property>
<property name="text">
<string>Reduce Input Distribution</string>
</property>
</action>
<action name="actionExclude_Space_Charge">
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>true</bool>
</property>
<property name="text">
<string>Exclude Space Charge</string>
</property>
</action>
<action name="actionExclude_CSR">
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>true</bool>
</property>
<property name="text">
<string>Exclude CSR</string>
</property>
</action>
<action name="actionTest">
<property name="text">
<string>Test</string>
</property>
</action>
<action name="actionImport_Initial_Distribution">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Import Initial Distribution...</string>
</property>
</action>
<action name="actionLoad_From_LongTracker">
<property name="text">
<string>Load From LongTracker...</string>
</property>
</action>
<action name="actionUpdate_Undulator_in_Model">
<property name="text">
<string>Update Undulator in Model</string>
</property>
</action>
<action name="actionBackup">
<property name="text">
<string>Backup Files</string>
</property>
</action>
<action name="actionExport_Optics_Function">
<property name="text">
<string>Export Optics Function...</string>
</property>
</action>
<action name="actionExport_Optics_Functions">
<property name="text">
<string>Export Optical Functions...</string>
</property>
</action>
<action name="actionLoad_Reference">
<property name="text">
<string>Load Reference...</string>
</property>
</action>
<action name="actionSave_Reference">
<property name="text">
<string>Save Reference</string>
</property>
</action>
<action name="actionNew_Reference">
<property name="text">
<string>New Reference</string>
</property>
</action>
</widget>
<resources/>
<connections>
<connection>
<sender>actionQuit</sender>
<signal>triggered()</signal>
<receiver>OpticsGUI</receiver>
<slot>close()</slot>
<hints>
<hint type="sourcelabel">
<x>-1</x>
<y>-1</y>
</hint>
<hint type="destinationlabel">
<x>747</x>
<y>448</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@@ -1,2 +1,3 @@
#!/bin/bash
pyuic5 ui/OpticsToolsGui.ui > ui/OpticsToolsGui.py
pyuic5 ui/OpticsPlotGui.ui > ui/OpticsPlotGui.py