Skip to content
Snippets Groups Projects
Commit f0a249ad authored by Collin A. Schmitz's avatar Collin A. Schmitz
Browse files

Converting to PyQt and adding startup tab

parent bd9e4685
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/env python #!/usr/bin/env python
import wx from PyQt4.QtGui import *
from PyQt4.QtCore import *
from dmApiFactory import DmApiFactory from dmApiFactory import DmApiFactory
# Define the DAQs tab content: # Define the DAQs tab content:
class DaqsTab(wx.ListCtrl): class DaqsTab(QObject):
def __init__(self, stationName, parent, id=-1): def __init__(self, stationName, parent, id=-1):
wx.ListCtrl.__init__(self, parent, id, style=wx.LC_REPORT) super(DaqsTab, self).__init__(parent)
self.stationName = stationName self.stationName = stationName
self.experimentDaqApi = DmApiFactory.getInstance().getExperimentDaqApi() self.experimentDaqApi = DmApiFactory.getInstance().getExperimentDaqApi()
...@@ -32,5 +33,5 @@ class DaqsTab(wx.ListCtrl): ...@@ -32,5 +33,5 @@ class DaqsTab(wx.ListCtrl):
self.SetItemBackgroundColour(i, '#e6f1f5') self.SetItemBackgroundColour(i, '#e6f1f5')
i += 1 i += 1
#!/usr/bin/env python #!/usr/bin/env python
import sys import sys
import wx from PyQt4.QtCore import *
from PyQt4.QtGui import QMainWindow, QStackedLayout, QApplication, QWidget
from dm.common.constants import dmStatus from dm.common.constants import dmStatus
from dm.common.exceptions.dmException import DmException from dm.common.exceptions.dmException import DmException
...@@ -12,31 +13,37 @@ from dm.common.utility.configurationManager import ConfigurationManager ...@@ -12,31 +13,37 @@ from dm.common.utility.configurationManager import ConfigurationManager
from experimentsTab import ExperimentsTab from experimentsTab import ExperimentsTab
from daqsTab import DaqsTab from daqsTab import DaqsTab
from uploadsTab import UploadsTab from uploadsTab import UploadsTab
from initialTab import InitialTab
class DmStationUi(wx.Frame):
class DmStationUi(QMainWindow):
def __init__(self): def __init__(self):
self.__configure() self.__configure()
self.logger.debug('Starting UI for DM Station: %s' % self.stationName) self.logger.debug('Starting UI for DM Station: %s' % self.stationName)
wx.Frame.__init__(self, None, title='DM Station: %s' % self.stationName, size=(900,500)) super(DmStationUi, self).__init__()
self.setWindowTitle('DM Station: %s' % self.stationName)
self.setGeometry(0, 0, 800, 400)
# Create a panel and notebook (tabs holder) # Create a stacked layout to connect the various pages
p = wx.Panel(self) self.stackedLayout = QStackedLayout()
nb = wx.Notebook(p)
# Create the tab windows # Create the tab windows
experimentsTab = ExperimentsTab(self.stationName, nb) initialTab = InitialTab(self.stationName, self.stackedLayout)
daqsTab = DaqsTab(self.stationName, nb) experimentsTab = ExperimentsTab(self.stationName, self.stackedLayout)
uploadsTab = UploadsTab(self.stationName, nb) #daqsTab = DaqsTab(self.stationName, self.stackedLayout)
#uploadsTab = UploadsTab(self.stationName, self.stackedLayout)
# Add the windows to tabs and name them.
nb.AddPage(experimentsTab, "Experiments")
nb.AddPage(daqsTab, "Real Time DAQs")
nb.AddPage(uploadsTab, "Data Uploads")
# Set noteboook in a sizer to create the layout # Add the windows to the stack.
sizer = wx.BoxSizer() self.stackedLayout.addWidget(initialTab)
sizer.Add(nb, 1, wx.EXPAND) self.stackedLayout.addWidget(experimentsTab)
p.SetSizer(sizer) #self.stackedLayout.addWidget(daqsTab)
#self.stackedLayout.addWidget(uploadsTab)
# Set a central widget to hold everything
self.centralWidget = QWidget()
self.centralWidget.setLayout(self.stackedLayout)
self.setCentralWidget(self.centralWidget)
def __configure(self): def __configure(self):
self.logger = LoggingManager.getInstance().getLogger(self.__class__.__name__) self.logger = LoggingManager.getInstance().getLogger(self.__class__.__name__)
...@@ -47,7 +54,7 @@ class DmStationUi(wx.Frame): ...@@ -47,7 +54,7 @@ class DmStationUi(wx.Frame):
if __name__ == "__main__": if __name__ == "__main__":
try: try:
app = wx.App() app = QApplication(sys.argv)
DmStationUi().Show() DmStationUi().Show()
app.MainLoop() app.MainLoop()
except DmException, ex: except DmException, ex:
......
#!/usr/bin/env python #!/usr/bin/env python
import wx from PyQt4.QtGui import *
from PyQt4.QtCore import QObject
from dmApiFactory import DmApiFactory from dmApiFactory import DmApiFactory
# Define the experiments tab content: # Define the experiments tab content:
class ExperimentsTab(wx.ListCtrl): class ExperimentsTab(QObject):
def __init__(self, stationName, parent, id=-1): def __init__(self, stationName, parent, id=-1):
wx.ListCtrl.__init__(self, parent, id, style=wx.LC_REPORT) super(ExperimentsTab, self).__init__(parent)
self.stationName = stationName self.stationName = stationName
self.experimentDsApi = DmApiFactory.getInstance().getExperimentDsApi() self.experimentDsApi = DmApiFactory.getInstance().getExperimentDsApi()
self.InsertColumn(0, 'Name')
self.InsertColumn(1, 'Description')
self.InsertColumn(2, 'Start Date')
self.SetColumnWidth(0, 150)
self.SetColumnWidth(1, 500)
self.SetColumnWidth(2, 250)
self.updateList() self.updateList()
......
#!/usr/bin/env python
from PyQt4.QtGui import QGridLayout, QSpacerItem, QSizePolicy, QPushButton, QWidget, QFont, QLabel
from PyQt4.QtCore import QObject, Qt
# Define the experiments tab content:
class InitialTab(QObject):
def __init__(self, stationName, parent, id=-1):
super(InitialTab, self).__init__(parent)
self.stationName = stationName
self.parent = parent
def initialTabLayout(self):
grid = QGridLayout()
labelFont = QFont("Arial", 18, QFont.Bold)
lbl = QLabel(self.stationName + " DM Tool", self)
lbl.setAlignment(Qt.AlignCenter)
lbl.setFont(labelFont)
grid.addWidget(lbl, 1, 1, 1, 3)
grid.addItem(QSpacerItem(20, 130, QSizePolicy.Expanding), 2, 1)
grid.addItem(QSpacerItem(40, 20, QSizePolicy.Expanding), 3, 1)
manageBtn = QPushButton("Manage Experiments", self)
manageBtn.clicked.connect(self.setTab(1))
grid.addWidget(manageBtn, 3, 2)
grid.addItem(QSpacerItem(40, 20, QSizePolicy.Expanding), 3, 3)
viewBtn = QPushButton("View Experiments", self)
viewBtn.clicked.connect(self.setTab(2))
grid.addWidget(viewBtn, 3, 4)
grid.addItem(QSpacerItem(40, 20, QSizePolicy.Expanding), 3, 5)
grid.addItem(QSpacerItem(20, 130, QSizePolicy.Expanding), 4, 1)
self.initialTabWidget = QWidget()
self.initialTabWidget.setLayout(grid)
def setTab(self, tab):
self.parent.setCurrentIndex(tab)
#!/usr/bin/env python #!/usr/bin/env python
import wx from PyQt4.QtGui import *
from PyQt4.QtCore import *
from dmApiFactory import DmApiFactory from dmApiFactory import DmApiFactory
# Define the experiments tab content: # Define the experiments tab content:
class UploadsTab(wx.ListCtrl): class UploadsTab(QObject):
def __init__(self, stationName, parent, id=-1): def __init__(self, stationName, parent, id=-1):
wx.ListCtrl.__init__(self, parent, id, style=wx.LC_REPORT) super(UploadsTab, self).__init__(parent)
self.stationName = stationName self.stationName = stationName
self.experimentDaqApi = DmApiFactory.getInstance().getExperimentDaqApi() self.experimentDaqApi = DmApiFactory.getInstance().getExperimentDaqApi()
...@@ -31,5 +32,6 @@ class UploadsTab(wx.ListCtrl): ...@@ -31,5 +32,6 @@ class UploadsTab(wx.ListCtrl):
if (i % 2) == 0: if (i % 2) == 0:
self.SetItemBackgroundColour(i, '#e6f1f5') self.SetItemBackgroundColour(i, '#e6f1f5')
i += 1 i += 1
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment