class BeamlineApp(QtGui.QMainWindow):

    def __init__(self):
        super(BeamlineApp, self).__init__()

        self.beamline = Beamline()

        self.container = Container()
        self.controlsGroup = ControlsGroup(self.beamline)
        self.graph = Graph(self.beamline)
        self.init_UI()
        
        self.timer = QtCore.QTimer()
        self.timer.timeout.connect(self.update)
        self.timer.start(30)

    def update(self):
        self.beamline.update()
        for c in self.controlsGroup.controls.values():
            c.update()
        self.graph.updateGraph()


    def init_UI(self):
        self.setCentralWidget(self.container)
        self.container.layout.addWidget(self.graph,0,0)
        self.container.layout.addWidget(self.controlsGroup,1,0)

        self.makeToolbar()

        self.show()

    def makeToolbar(self):
        self.toolbar = QtGui.QToolBar()
        self.toolbar.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.addToolBar(self.toolbar)

        self.saveAction = QtGui.QPushButton('Save',self)
        self.saveAction.clicked.connect(self.controlsGroup.save)
        self.toolbar.addWidget(self.saveAction)

        self.loadAction = QtGui.QPushButton('Load',self)
        self.loadAction.clicked.connect(self.controlsGroup.load)
        self.toolbar.addWidget(self.loadAction)

        self.optimizeAction = QtGui.QPushButton('Optimize',self)
        self.optimizeAction.clicked.connect(self.controlsGroup.optimize)
        self.toolbar.addWidget(self.optimizeAction)

    def closeEvent(self,event):
        self.beamline.controlProcess.terminate()
        for v in self.controlsGroup.beamline.voltages.values():
            v.stopRamp = True
        event.accept()

    def keyPressEvent(self,e):
        self.controlsGroup.keyPressed(e)
        e.ignore()
    def __init__(self):
        super(BeamlineApp, self).__init__()

        self.beamline = Beamline()

        self.container = Container()
        self.controlsGroup = ControlsGroup(self.beamline)
        self.graph = Graph(self.beamline)
        self.init_UI()
        
        self.timer = QtCore.QTimer()
        self.timer.timeout.connect(self.update)
        self.timer.start(30)
Пример #3
0
    def __init__(self):
        super(BeamlineApp, self).__init__()

        self.beamline = Beamline()
        self.optimizers = []
        self.hotkeyManager = HotkeyManager(self)

        self.container = Container()
        self.controlsGroup = ControlsGroup(self)
        self.graph = Graph(self)
        self.init_UI()

        self.timer = QtCore.QTimer()
        self.timer.timeout.connect(self.update)
        self.timer.start(30)