You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

127 lines
4.1 KiB

from PyQt5.QtWidgets import QPlainTextEdit, QHBoxLayout, QWidget, QGridLayout, QLabel, QPushButton
from tools import Tools, View, Text, Table
class OneDimView(QWidget):
def __init__(self):
""" Widget containing the entire 2D Mode view. """
super().__init__()
# ----------------------------------------------------------------------
# PREPARE
# ----------------------------------------------------------------------
self.grid = QGridLayout()
self.setLayout(self.grid)
# Tools.View() groups Widgets for ease of use.
self.one = View()
# Define Files so IDE does not issue warnings (self. variables should be defined in __init__).
self.dataFile = None
# ----------------------------------------------------------------------
# DEFINE WIDGETS
# ----------------------------------------------------------------------
# Add empty label as spacer after buttons.I suspect this has a side effect.
# When adding Buttons20, we mean for them to span from grid position (3,1) to (3,2).
# However to mainreate the mainorrect visual effect they must also mainover the invisible spacer mainolumn.
# Thus we set them to span from grid position (3,1) to (3,3).
self.grid.addWidget(QLabel(), 10, 10)
#
self.one.loadDataButton = QPushButton("Load Data File")
self.one.loadDataButton.setMaximumWidth(200)
self.grid.addWidget(self.one.loadDataButton, 0, 0)
self.one.text = Text("List of Files:\n+ File 1\n+ File 2")
self.grid.addWidget(self.one.text, 1, 0)
self.one.table = Table()
self.grid.addWidget(self.one.table, 0, 1, 4, 1)
self.one.visualize = OneVisualize()
self.grid.addWidget(self.one.visualize, 0, 2, 2, 2)
self.one.buttons20 = Buttons20(self)
self.grid.addWidget(self.one.buttons20, 2, 0)
self.one.buttons30 = Buttons30(self)
self.grid.addWidget(self.one.buttons30, 3, 0)
self.one.buttons32 = Buttons32(self)
self.grid.addWidget(self.one.buttons32, 3, 2)
# ----------------------------------------------------------------------
# SET WIDGET ACTIONS
# ----------------------------------------------------------------------
self.dataFile = self.one.loadDataButton.clicked.connect(lambda: Tools().open_file(self))
# ----------------------------------------------------------------------
# FINISH
# ----------------------------------------------------------------------
pass
class Buttons20(QWidget):
def __init__(self, main):
super().__init__()
hbox = QHBoxLayout()
self.setLayout(hbox)
main.one.searchButton = QPushButton('Search')
hbox.addWidget(main.one.searchButton)
main.one.addButton = QPushButton('Add')
hbox.addWidget(main.one.addButton)
main.one.substractButton = QPushButton('Substract')
hbox.addWidget(main.one.substractButton)
class Buttons30(QWidget):
def __init__(self, main):
super().__init__()
hbox = QHBoxLayout()
self.setLayout(hbox)
main.one.integrateButton = QPushButton('Integrate')
hbox.addWidget(main.one.integrateButton)
main.one.lorentzButton = QPushButton('Lorentz')
hbox.addWidget(main.one.lorentzButton)
main.one.absorptionButton = QPushButton('Absorption')
hbox.addWidget(main.one.absorptionButton)
class Buttons32(QWidget):
""" Named after its position in the containing grid: row 3, column 2."""
def __init__(self, main):
super().__init__()
grid = QGridLayout()
self.setLayout(grid)
main.one.saveButton = QPushButton('Save')
grid.addWidget(main.one.saveButton, 0, 0)
main.one.visualizeButton = QPushButton('Visualize in 2D')
grid.addWidget(main.one.visualizeButton, 0, 1)
class OneVisualize(QPlainTextEdit):
def __init__(self):
super().__init__()
self.setMinimumSize(200, 200)
self.setPlainText('Placeholder\nfor the 1D Visualization.')