ZebraMode renamed to PrepareMode

Added Nuc/Mag views to Preparemode
Added TrueZebraMode (the ability to switch back to WelcomeView)
pull/1/head
Ivan Olexyn 6 years ago
parent c91c1b8f65
commit 722da695a3

@ -0,0 +1,226 @@
from PyQt5.QtWidgets import QPlainTextEdit, QVBoxLayout, QHBoxLayout, QWidget, QGridLayout, QLabel, QPushButton, QTableWidget, QTableWidgetItem
from PyQt5.QtGui import QPixmap
class PrepareView(QWidget):
def __init__(self):
''' Widget containing the entire Zebra Mode view. '''
super().__init__()
self.grid = QGridLayout()
self.setLayout(self.grid)
self.define_widgets()
self.showView('none')
self.set_widget_actions()
def define_widgets(self):
''' Define widgets such as buttons. This must be done before setting widget actions.
Otherwise a widget action might try to modify a widget that is not defined yet.'''
# add empty label as spacer after buttons
# this has some side effects (i suspect) :
# + when adding the Buttons20, we really mean for it to span from grid position (3,1) to (3,2)
# but to create the correct visual effect it must span also over the invisible spacder column,
# Thus from (3,1) to (3,3).
self.grid.addWidget(QLabel(), 10,10)
# Common items
self.buttons00 = Buttons00(self)
self.grid.addWidget(self.buttons00,0,0)
# Zebra Nuc View
self.nucTable = OneDTable()
self.grid.addWidget(self.nucTable,0,1)
self.nucButtons11 = NucButtons11(self)
self.grid.addWidget(self.nucButtons11, 1,1)
#self.buttons20 = Buttons20()
#self.grid.addWidget(self.buttons20, 2,0)
#self.buttons30 = Buttons30()
#self.grid.addWidget(self.buttons30, 3,0)
# Zebra Mag View
self.magTable = OneDTable()
self.grid.addWidget(self.magTable,0,1)
self.magButtons11 = MagButtons11(self)
self.grid.addWidget(self.magButtons11,1,1)
self.magVisual = OneDText()
self.grid.addWidget(self.magVisual, 0,2)
self.magButtons12 = MagButtons12(self)
self.grid.addWidget(self.magButtons12,1,2)
def set_widget_actions(self):
self.sectorNucButton.clicked.connect(lambda: self.showView('nuc'))
self.sectorMagButton.clicked.connect(lambda: self.showView('mag'))
pass
def showView(self,view):
''' Will hide everything if called with anything besides nuc or mag.'''
self.nucTable.setHidden(True)
self.nucButtons11.setHidden(True)
self.magTable.setHidden(True)
self.magButtons11.setHidden(True)
self.magVisual.setHidden(True)
self.magButtons12.setHidden(True)
if view == 'nuc':
self.nucTable.setHidden(False)
self.nucButtons11.setHidden(False)
elif view == 'mag':
self.magTable.setHidden(False)
self.magButtons11.setHidden(False)
self.magVisual.setHidden(False)
self.magButtons12.setHidden(False)
else:
pass
class OneDText(QPlainTextEdit):
def __init__(self):
super().__init__()
self.setMinimumSize(200,200)
self.setPlainText("List of Files:\n+ File 1\n+ File 2")
class OneDTable(QTableWidget):
def __init__(self):
super().__init__()
self.setSortingEnabled(True)
self.setRowCount(4)
self.setColumnCount(4)
self.setMinimumSize(300,200)
self.setHorizontalHeaderLabels({'h', 'k', 'l'})
class Buttons00(QWidget):
def __init__(self, c):
''' Here c stands for container, thus the main window.'''
super().__init__()
grid = QGridLayout()
self.setLayout(grid)
c.loadcrystalButton = QPushButton()
c.loadcrystalButton.setText("Load Crystal File")
grid.addWidget(c.loadcrystalButton, 0, 0)
c.loadInstrumentFileButton = QPushButton()
c.loadInstrumentFileButton.setText('Load Instrument File')
grid.addWidget(c.loadInstrumentFileButton,1,0)
c.sectorNucButton = QPushButton()
c.sectorNucButton.setText('Sector Nuc')
grid.addWidget(c.sectorNucButton,2,0)
c.sectorMagButton = QPushButton()
c.sectorMagButton.setText('Sector Mag')
grid.addWidget(c.sectorMagButton,3,0)
class NucButtons11(QWidget):
def __init__(self,c):
''' Here c stands for container, thus the main window.\n
The purpose of this notation is to enable access to each button via self in the main window.'''
super().__init__()
grid = QGridLayout()
self.setLayout(grid)
c.sortNucButton = QPushButton()
c.sortNucButton.setText("Sort")
grid.addWidget(c.sortNucButton,0,0)
c.optimizeNucButton = QPushButton()
c.optimizeNucButton.setText("Optimize")
grid.addWidget(c.optimizeNucButton,0,1)
c.saveNucButton = QPushButton()
c.saveNucButton.setText("Save")
grid.addWidget(c.saveNucButton,0,2)
class MagButtons11(QWidget):
def __init__(self,c):
super().__init__()
grid = QGridLayout()
self.setLayout(grid)
c.runMagButton = QPushButton()
c.runMagButton.setText("Run")
grid.addWidget(c.runMagButton,0,0)
class MagButtons12(QWidget):
def __init__(self,c):
super().__init__()
grid = QGridLayout()
self.setLayout(grid)
c.sortMagButton = QPushButton()
c.sortMagButton.setText("Sort")
grid.addWidget(c.sortMagButton,0,0)
c.optimizeMagButton = QPushButton()
c.optimizeMagButton.setText("Optimize")
grid.addWidget(c.optimizeMagButton,0,1)
c.saveMagButton = QPushButton()
c.saveMagButton.setText("Save")
grid.addWidget(c.saveMagButton,0,2)

@ -4,7 +4,7 @@ from PyQt5.QtWidgets import QMainWindow, QApplication, QPushButton, QGraphicsPix
from twoDimView import TwoDimView from twoDimView import TwoDimView
from oneDimView import OneDimView from oneDimView import OneDimView
from welcomeView import WelcomeView from welcomeView import WelcomeView
from zebraView import ZebraView from prepareView import PrepareView
@ -40,9 +40,9 @@ class Zebra(QMainWindow):
self.vbox.addWidget(self.welcomeView) self.vbox.addWidget(self.welcomeView)
self.welcomeView.setHidden(False) self.welcomeView.setHidden(False)
self.zebraView = ZebraView() self.prepareView = PrepareView()
self.vbox.addWidget(self.zebraView) self.vbox.addWidget(self.prepareView)
self.zebraView.setHidden(True) self.prepareView.setHidden(True)
self.oneDimView = OneDimView() self.oneDimView = OneDimView()
self.vbox.addWidget(self.oneDimView) self.vbox.addWidget(self.oneDimView)
@ -57,8 +57,14 @@ class Zebra(QMainWindow):
''' Set up the main menu.''' ''' Set up the main menu.'''
self.modeMenu = self.menuBar().addMenu('Mode') self.modeMenu = self.menuBar().addMenu('Mode')
self.zebraMenuEntry = QAction('Zebra')
self.zebraMenuEntry.triggered.connect(lambda: self.showView('zebra')) self.welcomeMenuEntry = QAction('Zebra')
self.welcomeMenuEntry.triggered.connect(lambda: self.showView('welcome'))
self.modeMenu.addAction(self.welcomeMenuEntry)
self.zebraMenuEntry = QAction('Prepare')
self.zebraMenuEntry.triggered.connect(lambda: self.showView('prepare'))
self.modeMenu.addAction(self.zebraMenuEntry) self.modeMenu.addAction(self.zebraMenuEntry)
self.oneDMenuEntry = QAction('1D Mode') self.oneDMenuEntry = QAction('1D Mode')
@ -73,12 +79,14 @@ class Zebra(QMainWindow):
def showView(self, view): def showView(self, view):
self.welcomeView.setHidden(True) self.welcomeView.setHidden(True)
self.zebraView.setHidden(True) self.prepareView.setHidden(True)
self.oneDimView.setHidden(True) self.oneDimView.setHidden(True)
self.twoDimView.setHidden(True) self.twoDimView.setHidden(True)
if view == 'zebra': if view == 'welcome':
self.zebraView.setHidden(False) self.welcomeView.setHidden(False)
elif view == 'prepare':
self.prepareView.setHidden(False)
elif view == '1D': elif view == '1D':
self.oneDimView.setHidden(False) self.oneDimView.setHidden(False)
elif view =='2D': elif view =='2D':

@ -1,166 +0,0 @@
from PyQt5.QtWidgets import QPlainTextEdit, QVBoxLayout, QHBoxLayout, QWidget, QGridLayout, QLabel, QPushButton, QTableWidget, QTableWidgetItem
from PyQt5.QtGui import QPixmap
class ZebraView(QWidget):
def __init__(self):
''' Widget containing the entire Zebra Mode view. '''
super().__init__()
self.grid = QGridLayout()
self.setLayout(self.grid)
self.define_widgets()
self.set_widget_actions()
def define_widgets(self):
''' Define widgets such as buttons. This must be done before setting widget actions.
Otherwise a widget action might try to modify a widget that is not defined yet.'''
# add empty label as spacer after buttons
# this has some side effects (i suspect) :
# + when adding the Buttons20, we really mean for it to span from grid position (3,1) to (3,2)
# but to create the correct visual effect it must span also over the invisible spacder column,
# Thus from (3,1) to (3,3).
self.grid.addWidget(QLabel(), 10,10)
# Common items
self.buttons00 = Buttons00()
self.grid.addWidget(self.buttons00,0,0)
# Zebra Nuc View
self.nucTable = OneDTable()
self.grid.addWidget(self.nucTable,0,1)
self.nucButtons11 = NucButtons11()
self.grid.addWidget(self.nucButtons11, 1,1)
#self.buttons20 = Buttons20()
#self.grid.addWidget(self.buttons20, 2,0)
#self.buttons30 = Buttons30()
#self.grid.addWidget(self.buttons30, 3,0)
# Zebra Mag View
self.magTable = OneDTable()
self.magVisual = OneDText()
def set_widget_actions(self):
pass
def showView(self,view):
self.nucTable.setHidden(True)
self.nucButtons11.setHidden(True)
class OneDText(QPlainTextEdit):
def __init__(self):
super().__init__()
self.setMinimumSize(200,200)
self.setPlainText("List of Files:\n+ File 1\n+ File 2")
class OneDTable(QTableWidget):
def __init__(self):
super().__init__()
self.setSortingEnabled(True)
self.setRowCount(4)
self.setColumnCount(4)
self.setMinimumSize(300,200)
self.setHorizontalHeaderLabels({'h', 'k', 'l'})
class Buttons00(QWidget):
def __init__(self):
super().__init__()
grid = QGridLayout()
self.setLayout(grid)
self.loadcrystalButton = QPushButton()
self.loadcrystalButton.setText("Load Crystal File")
grid.addWidget(self.loadcrystalButton, 0, 0)
self.loadInstrumentFileButton = QPushButton()
self.loadInstrumentFileButton.setText('Load Instrument File')
grid.addWidget(self.loadInstrumentFileButton,1,0)
self.sectorNucButton = QPushButton()
self.sectorNucButton.setText('Sector Nuc')
grid.addWidget(self.sectorNucButton,2,0)
self.sectorMagButton = QPushButton()
self.sectorMagButton.setText('Sector Mag')
grid.addWidget(self.sectorMagButton,3,0)
class NucButtons11(QWidget):
def __init__(self):
super().__init__()
grid = QGridLayout()
self.setLayout(grid)
self.prepareNucButton = QPushButton()
self.prepareNucButton.setText("Prepare")
grid.addWidget(self.prepareNucButton,0,0)
self.sortNucButton = QPushButton()
self.sortNucButton.setText("Sort")
grid.addWidget(self.sortNucButton,0,1)
self.optimizeNucButton = QPushButton()
self.optimizeNucButton.setText("Optimize")
grid.addWidget(self.optimizeNucButton,0,2)
self.saveNucButton = QPushButton()
self.saveNucButton.setText("Save")
grid.addWidget(self.saveNucButton,0,3)
Loading…
Cancel
Save