コード例 #1
0
ファイル: Screen.py プロジェクト: YPZhou/Sistr
class Screen(QtGui.QMainWindow):


	def __init__(self, data, mainWindow = False):
		super(Screen, self).__init__()
		
		self.data = data
		self.mainWindow = mainWindow
		
		if self.mainWindow:
			pass
			# print 'mainWindow'
			# self.data.loadData('.', 'Repro_geste_standard_assis_Trial1.c3d')
			# self.screenList = []
		else:
			pass
			# print 'new sub window'
		
		self.initUI()

		
	def initUI(self):		
		if self.mainWindow:
			self.setAcceptDrops(True)
			self.setWindowTitle('Sistre')
		
			openAction = QtGui.QAction('Open', self)
			openAction.triggered.connect(self.showFileDialog)
			exitAction = QtGui.QAction('Exit', self)
			exitAction.triggered.connect(QtGui.qApp.quit)
		
			filemenu = self.menuBar().addMenu('File')
			filemenu.addAction(openAction)
			filemenu.addSeparator()
			filemenu.addAction(exitAction)
			
			self.parameterDialog = Parameter(self)
			parameterAction = QtGui.QAction('Parameter', self)
			parameterAction.triggered.connect(self.showParameterDialog)
			
			viewmenu = self.menuBar().addMenu('View')
			viewmenu.addAction(parameterAction)
			
			createGrpFromSelAction = QtGui.QAction('Create from selection', self)
			createGrpFromSelAction.triggered.connect(self.createGroupFromSelection)
			createGrpDialogAction = QtGui.QAction('Create...', self)
			createGrpDialogAction.triggered.connect(self.showCreateGroupDialog)
			
			groupmenu = self.menuBar().addMenu('Group')
			groupmenu.addAction(createGrpFromSelAction)
			groupmenu.addAction(createGrpDialogAction)

		self.glRenderArea = GLRenderArea(self)
		self.centralTab = QtGui.QTabWidget()
		self.centralTab.addTab(self.glRenderArea, '3D View')
		self.centralTab.addTab(QtGui.QWidget(), '2D View')
		
		self.timerBar = TimerBar(self)
		
		self.leftLayout = QtGui.QVBoxLayout()
		self.leftLayout.addWidget(self.centralTab)
		self.leftLayout.addWidget(self.timerBar)
		
		self.itemList = ItemList(self)
		self.itemList.itemListPick.connect(self.glRenderArea.itemListPick)
		self.itemList.itemConfigChanged.connect(self.glRenderArea.itemConfigChanged)
		# self.itemList.itemConfigChanged.connect(self.graphRenderArea.itemConfigChanged)
		
		self.centralLayout = QtGui.QHBoxLayout()
		self.centralLayout.addLayout(self.leftLayout)
		self.centralLayout.addWidget(self.itemList)
		
		self.centralWidget = QtGui.QWidget()
		self.centralWidget.setLayout(self.centralLayout)
		
		self.setCentralWidget(self.centralWidget)
		self.show()
		
		
	def showFileDialog(self):
		fileDialog = QtGui.QFileDialog(parent = self, caption = 'Open video file')
		if fileDialog.exec_() == QtGui.QDialog.Accepted:
			self.data.loadData(str(fileDialog.selectedFiles()[0]))
			
			
	def showParameterDialog(self):
		self.parameterDialog.show()
			
			
	def showCreateGroupDialog(self):
		pass
		
		
	def createGroupFromSelection(self):
		newGroup = self.data.createGroupFromSelection(list(self.glRenderArea.selectedMarkers))
		self.glRenderArea.addGroup(newGroup)
			
			
	def dragEnterEvent(self, event):
		if event.mimeData().hasUrls():
			event.accept()
		else:
			event.ignore()

			
	def dropEvent(self, event):
		if len(event.mimeData().urls()) > 0:
			url = event.mimeData().urls()[0]
			path = url.toLocalFile().toLocal8Bit().data()
			self.data.loadData(path)
		else:
			event.ignore()
			
			
	def dataLoaded(self):
		self.setWindowTitle(self.data.dataPath + self.data.dataFile + ' - Sistre')
	
		self.glRenderArea.clearItemConfig()
	
		self.timerBar.setPauseButtonChecked(self.data.paused)
		self.timerBar.setMaximum(self.data.totalFrame)
		self.timerBar.setValue(self.data.currentFrame)
		
		self.itemList.setItemData(self.data)
		
		
	def dataPauseToggled(self):
		self.timerBar.setPauseButtonChecked(self.data.paused)
		
		
	def dataFrameUpdated(self):
		self.timerBar.setValue(self.data.currentFrame)
コード例 #2
0
ファイル: Screen.py プロジェクト: YPZhou/Sistr
class Screen(QtGui.QMainWindow):
    def __init__(self, data, mainWindow=False):
        super(Screen, self).__init__()

        self.data = data
        self.mainWindow = mainWindow

        if self.mainWindow:
            pass
            # print 'mainWindow'
            # self.data.loadData('.', 'Repro_geste_standard_assis_Trial1.c3d')
            # self.screenList = []
        else:
            pass
            # print 'new sub window'

        self.initUI()

    def initUI(self):
        if self.mainWindow:
            self.setAcceptDrops(True)
            self.setWindowTitle('Sistre')

            openAction = QtGui.QAction('Open', self)
            openAction.triggered.connect(self.showFileDialog)
            exitAction = QtGui.QAction('Exit', self)
            exitAction.triggered.connect(QtGui.qApp.quit)

            filemenu = self.menuBar().addMenu('File')
            filemenu.addAction(openAction)
            filemenu.addSeparator()
            filemenu.addAction(exitAction)

            self.parameterDialog = Parameter(self)
            parameterAction = QtGui.QAction('Parameter', self)
            parameterAction.triggered.connect(self.showParameterDialog)

            viewmenu = self.menuBar().addMenu('View')
            viewmenu.addAction(parameterAction)

            createGrpFromSelAction = QtGui.QAction('Create from selection',
                                                   self)
            createGrpFromSelAction.triggered.connect(
                self.createGroupFromSelection)
            createGrpDialogAction = QtGui.QAction('Create...', self)
            createGrpDialogAction.triggered.connect(self.showCreateGroupDialog)

            groupmenu = self.menuBar().addMenu('Group')
            groupmenu.addAction(createGrpFromSelAction)
            groupmenu.addAction(createGrpDialogAction)

        self.glRenderArea = GLRenderArea(self)
        self.centralTab = QtGui.QTabWidget()
        self.centralTab.addTab(self.glRenderArea, '3D View')
        self.centralTab.addTab(QtGui.QWidget(), '2D View')

        self.timerBar = TimerBar(self)

        self.leftLayout = QtGui.QVBoxLayout()
        self.leftLayout.addWidget(self.centralTab)
        self.leftLayout.addWidget(self.timerBar)

        self.itemList = ItemList(self)
        self.itemList.itemListPick.connect(self.glRenderArea.itemListPick)
        self.itemList.itemConfigChanged.connect(
            self.glRenderArea.itemConfigChanged)
        # self.itemList.itemConfigChanged.connect(self.graphRenderArea.itemConfigChanged)

        self.centralLayout = QtGui.QHBoxLayout()
        self.centralLayout.addLayout(self.leftLayout)
        self.centralLayout.addWidget(self.itemList)

        self.centralWidget = QtGui.QWidget()
        self.centralWidget.setLayout(self.centralLayout)

        self.setCentralWidget(self.centralWidget)
        self.show()

    def showFileDialog(self):
        fileDialog = QtGui.QFileDialog(parent=self, caption='Open video file')
        if fileDialog.exec_() == QtGui.QDialog.Accepted:
            self.data.loadData(str(fileDialog.selectedFiles()[0]))

    def showParameterDialog(self):
        self.parameterDialog.show()

    def showCreateGroupDialog(self):
        pass

    def createGroupFromSelection(self):
        newGroup = self.data.createGroupFromSelection(
            list(self.glRenderArea.selectedMarkers))
        self.glRenderArea.addGroup(newGroup)

    def dragEnterEvent(self, event):
        if event.mimeData().hasUrls():
            event.accept()
        else:
            event.ignore()

    def dropEvent(self, event):
        if len(event.mimeData().urls()) > 0:
            url = event.mimeData().urls()[0]
            path = url.toLocalFile().toLocal8Bit().data()
            self.data.loadData(path)
        else:
            event.ignore()

    def dataLoaded(self):
        self.setWindowTitle(self.data.dataPath + self.data.dataFile +
                            ' - Sistre')

        self.glRenderArea.clearItemConfig()

        self.timerBar.setPauseButtonChecked(self.data.paused)
        self.timerBar.setMaximum(self.data.totalFrame)
        self.timerBar.setValue(self.data.currentFrame)

        self.itemList.setItemData(self.data)

    def dataPauseToggled(self):
        self.timerBar.setPauseButtonChecked(self.data.paused)

    def dataFrameUpdated(self):
        self.timerBar.setValue(self.data.currentFrame)