diff --git a/.gitignore b/.gitignore
index 17b40f5..4d6521e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
# Byte-compiled / optimized / DLL files
__pycache__/
-*.ui
\ No newline at end of file
+*.ui
+demo.py
\ No newline at end of file
diff --git a/README.md b/README.md
index 691980c..e9f3ba1 100644
--- a/README.md
+++ b/README.md
@@ -26,4 +26,6 @@ Graphical User Interface allowing to:
## TO DO
+https://stackoverflow.com/questions/49448990/pyqt-input-dialog-unexpected-type?rq=1
+
## BUGS
diff --git a/main.ui b/main.ui
index 7a9e33e..3019ae8 100644
--- a/main.ui
+++ b/main.ui
@@ -6,8 +6,8 @@
0
0
- 798
- 575
+ 780
+ 622
@@ -26,15 +26,15 @@
P65 XAFS Scan Manager
- 1
+ 0
0
0
- 774
- 483
+ 756
+ 530
@@ -144,8 +144,8 @@
0
0
- 774
- 483
+ 756
+ 530
diff --git a/mainWindow.ui b/mainWindow.ui
deleted file mode 100644
index ed02712..0000000
--- a/mainWindow.ui
+++ /dev/null
@@ -1,263 +0,0 @@
-
-
- MainWindow
-
-
-
- 0
- 0
- 800
- 600
-
-
-
- MainWindow
-
-
-
- -
-
-
- P65 XAFS Scan Manager
-
-
- P65 XAFS Scan Manager
-
-
- P65 XAFS Scan Manager
-
-
- 0
-
-
-
-
- 0
- 0
- 776
- 465
-
-
-
-
-
-
- Scan Parameters
-
-
-
-
-
-
-
-
-
-
- 75
- 16777215
-
-
-
- Add
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 75
- 16777215
-
-
-
- Copy
-
-
-
- -
-
-
-
- 75
- 16777215
-
-
-
- Remove
-
-
-
- -
-
-
-
- 16777215
- 16777215
-
-
-
- Clear
-
-
-
- -
-
-
-
-
- Scan #1
-
-
-
-
- -
-
-
- Start
-
-
-
- -
-
-
- Pause
-
-
-
-
-
-
-
-
-
-
- 0
- 0
- 98
- 28
-
-
-
- Data Storage
-
-
-
-
- 420
- 60
- 48
- 24
-
-
-
-
-
-
- 12
- 12
- 192
- 157
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 20
- 75
- true
- true
-
-
-
- Data Storage
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 0
- 0
-
-
-
-
- 180
- 80
-
-
-
-
- Location
-
-
-
-
- Folder Name
-
-
-
-
- Value
-
-
- -
-
- UserBeamtime
-
-
- -
-
- P.I.
-
-
-
-
- -
-
-
- Save
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/main_gui.py b/main_gui.py
index f04922d..f18a0a6 100644
--- a/main_gui.py
+++ b/main_gui.py
@@ -13,13 +13,13 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class MainGui(object):
def setupUi(self, widget):
widget.setObjectName("widget")
- widget.resize(798, 575)
+ widget.resize(780, 622)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(widget)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.toolBox = QtWidgets.QToolBox(widget)
self.toolBox.setObjectName("toolBox")
self.scanParameterPage = QtWidgets.QWidget()
- self.scanParameterPage.setGeometry(QtCore.QRect(0, 0, 774, 483))
+ self.scanParameterPage.setGeometry(QtCore.QRect(0, 0, 756, 530))
self.scanParameterPage.setAccessibleName("")
self.scanParameterPage.setObjectName("scanParameterPage")
self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.scanParameterPage)
@@ -63,7 +63,7 @@ class MainGui(object):
self.horizontalLayout_4.addLayout(self.gridLayout)
self.toolBox.addItem(self.scanParameterPage, "")
self.DataStoragePage = QtWidgets.QWidget()
- self.DataStoragePage.setGeometry(QtCore.QRect(0, 0, 774, 483))
+ self.DataStoragePage.setGeometry(QtCore.QRect(0, 0, 756, 530))
self.DataStoragePage.setObjectName("DataStoragePage")
self.widget = QtWidgets.QWidget(self.DataStoragePage)
self.widget.resize(192, 157)
@@ -118,7 +118,7 @@ class MainGui(object):
self.horizontalLayout_2.addWidget(self.toolBox)
self.retranslateUi(widget)
- self.toolBox.setCurrentIndex(1)
+ self.toolBox.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(widget)
def retranslateUi(self, widget):
diff --git a/qexafs.py b/qexafs.py
new file mode 100644
index 0000000..25d3b38
--- /dev/null
+++ b/qexafs.py
@@ -0,0 +1,180 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'qexafs.ui'
+#
+# Created by: PyQt5 UI code generator 5.13.2
+#
+# WARNING! All changes made in this file will be lost!
+
+
+from PyQt5 import QtCore, QtGui, QtWidgets
+
+
+class QexafsGui(object):
+ def setupUi(self, Form):
+ Form.setObjectName("Form")
+ Form.resize(470, 460)
+ self.horizontalLayout = QtWidgets.QHBoxLayout(Form)
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ self.gridLayout = QtWidgets.QGridLayout()
+ self.gridLayout.setObjectName("gridLayout")
+ self.label = QtWidgets.QLabel(Form)
+ sizePolicy = QtWidgets.QSizePolicy(
+ QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(
+ self.label.sizePolicy().hasHeightForWidth())
+ self.label.setSizePolicy(sizePolicy)
+ font = QtGui.QFont()
+ font.setPointSize(20)
+ font.setBold(True)
+ font.setWeight(75)
+ font.setKerning(True)
+ self.label.setFont(font)
+ self.label.setObjectName("label")
+ self.gridLayout.addWidget(self.label, 0, 0, 1, 2)
+ self.tableWidget = QtWidgets.QTableWidget(Form)
+ sizePolicy = QtWidgets.QSizePolicy(
+ QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Maximum)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(
+ self.tableWidget.sizePolicy().hasHeightForWidth())
+ self.tableWidget.setSizePolicy(sizePolicy)
+ self.tableWidget.setMinimumSize(QtCore.QSize(0, 350))
+ self.tableWidget.setMaximumSize(QtCore.QSize(200, 16777215))
+ self.tableWidget.setAutoFillBackground(True)
+ self.tableWidget.setObjectName("tableWidget")
+ self.tableWidget.setColumnCount(1)
+ self.tableWidget.setRowCount(11)
+ item = QtWidgets.QTableWidgetItem()
+ self.tableWidget.setVerticalHeaderItem(0, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.tableWidget.setVerticalHeaderItem(1, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.tableWidget.setVerticalHeaderItem(2, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.tableWidget.setVerticalHeaderItem(3, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.tableWidget.setVerticalHeaderItem(4, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.tableWidget.setVerticalHeaderItem(5, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.tableWidget.setVerticalHeaderItem(6, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.tableWidget.setVerticalHeaderItem(7, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.tableWidget.setVerticalHeaderItem(8, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.tableWidget.setVerticalHeaderItem(9, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.tableWidget.setVerticalHeaderItem(10, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.tableWidget.setHorizontalHeaderItem(0, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.tableWidget.setItem(0, 0, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.tableWidget.setItem(1, 0, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.tableWidget.setItem(2, 0, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.tableWidget.setItem(3, 0, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.tableWidget.setItem(4, 0, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.tableWidget.setItem(5, 0, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.tableWidget.setItem(6, 0, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.tableWidget.setItem(7, 0, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.tableWidget.setItem(8, 0, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.tableWidget.setItem(9, 0, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.tableWidget.setItem(10, 0, item)
+ self.gridLayout.addWidget(self.tableWidget, 1, 0, 1, 2)
+ self.pushButton = QtWidgets.QPushButton(Form)
+ sizePolicy = QtWidgets.QSizePolicy(
+ QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Maximum)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(
+ self.pushButton.sizePolicy().hasHeightForWidth())
+ self.pushButton.setSizePolicy(sizePolicy)
+ self.pushButton.setObjectName("pushButton")
+ self.gridLayout.addWidget(self.pushButton, 2, 0, 1, 1)
+ self.pushButton_2 = QtWidgets.QPushButton(Form)
+ self.pushButton_2.setObjectName("pushButton_2")
+ self.gridLayout.addWidget(self.pushButton_2, 2, 1, 1, 1)
+ self.horizontalLayout.addLayout(self.gridLayout)
+ self.verticalLayout = QtWidgets.QVBoxLayout()
+ self.verticalLayout.setObjectName("verticalLayout")
+ self.listWidget = QtWidgets.QListWidget(Form)
+ self.listWidget.setObjectName("listWidget")
+ self.verticalLayout.addWidget(self.listWidget)
+ self.pushButton_3 = QtWidgets.QPushButton(Form)
+ self.pushButton_3.setObjectName("pushButton_3")
+ self.verticalLayout.addWidget(self.pushButton_3)
+ self.horizontalLayout.addLayout(self.verticalLayout)
+
+ self.retranslateUi(Form)
+ QtCore.QMetaObject.connectSlotsByName(Form)
+
+ def retranslateUi(self, Form):
+ _translate = QtCore.QCoreApplication.translate
+ Form.setWindowTitle(_translate("Form", "New Scan"))
+ self.label.setText(_translate("Form", "Scan Parameters"))
+ item = self.tableWidget.verticalHeaderItem(0)
+ item.setText(_translate("Form", "Energy"))
+ item = self.tableWidget.verticalHeaderItem(1)
+ item.setText(_translate("Form", "Edge "))
+ item = self.tableWidget.verticalHeaderItem(2)
+ item.setText(_translate("Form", "Start Scan"))
+ item = self.tableWidget.verticalHeaderItem(3)
+ item.setText(_translate("Form", "End Scan"))
+ item = self.tableWidget.verticalHeaderItem(4)
+ item.setText(_translate("Form", "Total Scan Time"))
+ item = self.tableWidget.verticalHeaderItem(5)
+ item.setText(_translate("Form", "Time per Point"))
+ item = self.tableWidget.verticalHeaderItem(6)
+ item.setText(_translate("Form", "Undulator Offset"))
+ item = self.tableWidget.verticalHeaderItem(7)
+ item.setText(_translate("Form", "Sample Name"))
+ item = self.tableWidget.verticalHeaderItem(8)
+ item.setText(_translate("Form", "Sample Position"))
+ item = self.tableWidget.verticalHeaderItem(9)
+ item.setText(_translate("Form", "Motor Position"))
+ item = self.tableWidget.verticalHeaderItem(10)
+ item.setText(_translate("Form", "Number of Scans"))
+ item = self.tableWidget.horizontalHeaderItem(0)
+ item.setText(_translate("Form", "Value"))
+ __sortingEnabled = self.tableWidget.isSortingEnabled()
+ self.tableWidget.setSortingEnabled(False)
+ item = self.tableWidget.item(0, 0)
+ item.setText(_translate("Form", "7112"))
+ item = self.tableWidget.item(1, 0)
+ item.setText(_translate("Form", "Fe_K"))
+ item = self.tableWidget.item(2, 0)
+ item.setText(_translate("Form", "150"))
+ item = self.tableWidget.item(3, 0)
+ item.setText(_translate("Form", "1000"))
+ item = self.tableWidget.item(4, 0)
+ item.setText(_translate("Form", "180"))
+ item = self.tableWidget.item(5, 0)
+ item.setText(_translate("Form", "0.1"))
+ item = self.tableWidget.item(6, 0)
+ item.setText(_translate("Form", "50"))
+ item = self.tableWidget.item(7, 0)
+ item.setText(_translate("Form", "Fe_foil"))
+ item = self.tableWidget.item(8, 0)
+ item.setText(_translate("Form", "0"))
+ item = self.tableWidget.item(9, 0)
+ item.setText(_translate("Form", "0"))
+ item = self.tableWidget.item(10, 0)
+ item.setText(_translate("Form", "1"))
+ self.tableWidget.setSortingEnabled(__sortingEnabled)
+ self.pushButton.setText(_translate("Form", "Add Scan"))
+ self.pushButton_2.setText(_translate("Form", "Cancel"))
+ self.pushButton_3.setText(_translate("Form", "Done"))
diff --git a/qexafs.ui b/qexafs.ui
index 5f3a4d3..08e2649 100644
--- a/qexafs.ui
+++ b/qexafs.ui
@@ -6,206 +6,214 @@
0
0
- 230
+ 470
460
- Form
+ New Scan
-
-
-
- 12
- 12
- 212
- 427
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 20
- 75
- true
- true
-
-
-
- Scan Parameters
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 0
- 350
-
-
-
-
- 200
- 16777215
-
-
-
- true
-
-
-
- Energy
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
-
-
-
- Edge
+
+
+ 20
+ 75
+ true
+ true
+
-
-
- Start Scan
+ Scan Parameters
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 350
+
+
+
+
+ 200
+ 16777215
+
+
+
+ true
+
+
+
+ Energy
+
+
+
+
+ Edge
+
+
+
+
+ Start Scan
+
+
+
+
+ End Scan
+
+
+
+
+ Total Scan Time
+
+
+
+
+ Time per Point
+
+
+
+
+ Undulator Offset
+
+
+
+
+ Sample Name
+
+
+
+
+ Sample Position
+
+
+
+
+ Motor Position
+
+
+
+
+ Number of Scans
+
+
+
+
+ Value
+
+
+ -
+
+ 7112
+
+
+ -
+
+ Fe_K
+
+
+ -
+
+ 150
+
+
+ -
+
+ 1000
+
+
+ -
+
+ 180
+
+
+ -
+
+ 0.1
+
+
+ -
+
+ 50
+
+
+ -
+
+ Fe_foil
+
+
+ -
+
+ 0
+
+
+ -
+
+ 0
+
+
+ -
+
+ 1
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
-
-
- End Scan
+ Add Scan
-
-
+
+
+ -
+
- Total Scan Time
+ Clear
-
-
+
+
+
+
+ -
+
+
-
+
+
+ -
+
- Time per Point
+ Done
-
-
-
- Undulator Offset
-
-
-
-
- Sample Name
-
-
-
-
- Sample Position
-
-
-
-
- Motor Position
-
-
-
-
- Number of Scans
-
-
-
-
- Value
-
-
- -
-
- 7112
-
-
- -
-
- Fe_K
-
-
- -
-
- 150
-
-
- -
-
- 1000
-
-
- -
-
- 180
-
-
- -
-
- 0.1
-
-
- -
-
- 50
-
-
- -
-
- Fe_foil
-
-
- -
-
- 0
-
-
- -
-
- 0
-
-
- -
-
- 1
-
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- Add Scan
-
-
-
- -
-
-
- Cancel
-
-
-
-
-
+
+
+
+
+
diff --git a/xafs_GUI.py b/xafs_GUI.py
index 43318bb..86500b1 100644
--- a/xafs_GUI.py
+++ b/xafs_GUI.py
@@ -4,11 +4,37 @@
from EXAFS_Monitor.monitor_gui import MonitorWidget
import sys
-from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow
+from PyQt5.QtWidgets import QApplication, QWidget
from main_gui import MainGui
+from qexafs import QexafsGui
+
from functools import partial
+class AddScan(QWidget, QexafsGui):
+ """
+ Widget used to create new scans
+ """
+
+ def __init__(self):
+ super().__init__()
+ self.setupUi(self)
+ self.pushButton.clicked.connect(self.save_scans)
+ self.pushButton_2.clicked.connect(self.clear)
+
+ def save_scans(self):
+ """
+ Create list of scan
+ """
+ line = [
+ f"{self.tableWidget.verticalHeaderItem(i).text()}: {self.tableWidget.item(i, 0).text()}" for i in range(11)]
+ self.listWidget.addItem(str(self.listWidget.count()+1)+", ".join(line))
+
+ def clear(self):
+ for line in range(11):
+ self.tableWidget.item(line, 0).setText('')
+
+
class XafsManager(QWidget, MainGui):
"""
Graphical-User Interface for P65 beamline
@@ -21,7 +47,11 @@ class XafsManager(QWidget, MainGui):
super().__init__()
self.setupUi(self)
- # self.pushButton.clicked.connect(self.listWidget)
+ self.pushButton.clicked.connect(self.add_scan)
+
+ def add_scan(self):
+ self.add = AddScan()
+ self.add.show()
# self.connect(
# self.loadLast,
@@ -46,15 +76,17 @@ class XafsManager(QWidget, MainGui):
# SIGNAL("clicked()"),
# partial(self.clearScans, scanListe)
# )
- # Defines a single scan and returns the parameter as a dictionary object
+ #
# def make_dict(self, scanListe):
-# # Collect all the input
+# """
+# Defines a single scan and returns the parameter as a dictionary object
+# """
# edge_n = str(self.edge_name.text())
# if str(edge_n) == "":
# showMessageBox(self, "Edge Name")
-# dsPar = str(self.ds_param.text())
-# """if str(dsPar) == "":
-# EXAFS_GUI_common.showMessageBox(self,"DS parameter")"""
+# # dsPar = str(self.ds_param.text())
+# # """if str(dsPar) == "":
+# # EXAFS_GUI_common.showMessageBox(self,"DS parameter")"""
# edge_e = str(self.edge_energy.text())
# if str(edge_e) == "":
# showMessageBox(self, "Edge energy")
@@ -142,9 +174,9 @@ class XafsManager(QWidget, MainGui):
# return scanListe
- def showMessageBox(self, missing):
- QMessageBox.information(
- self, "Problem!!!", "Missing parameter: " + missing)
+# def showMessageBox(self):
+# QMessageBox.information(
+# self, "Problem!!!", "Clicked")
def main():