def __init__(self, argv): """ Constructor @load a config dictionnary """ QApplication.__init__(self, argv) self.settings = QSettings() #for e in self.settings.allKeys(): # print str(e) self.connect(self, SIGNAL('lastWindowClosed()'), self.goodbye) self.undoStack = QUndoStack(self) self.useGL = self.checkGL() self.lowMemory = False self.multiCore = False #self.modelView = 'Samples View' #self.showSplash=self.settings.value('showSplash', True).toBool() from gui.MetBaseGui import MSSplashScreen self.splash = MSSplashScreen( QPixmap(path.normcase("gui/icons/Tux-G2.png")), Qt.WindowStaysOnTopHint) self.splash.show() #self.splash.setMask(pixmap.mask()) self.splash.showMessage((u'Starting now...'), Qt.AlignCenter | Qt.AlignBottom, Qt.black) self.processEvents() self.controllers = {} self.metmsconfig = self.loadConfiguration()
def __init__(self, ob, parent): QAbstractTableModel.__init__(self) # store things self.ob = ob self.stack = QUndoStack() self._parent = parent # Make sure we have Name information first # _header contains the row headers self._header = [ QVariant('X'), QVariant('#'), QVariant(getattr(self.ob, 'UniqueName', 'name')) ] # _tooltips contains the tooltips self._tooltips = [ QVariant('An X indicates row is disabled %s' % bool), QVariant('Comment for row'), QVariant('Object name %s' % str) ] # _required is a list of required columns self._required = [] # _defaults is a dict of column -> default values self._defaults = {0: QVariant(False), 1: QVariant("")} # _optional is a list of optional columns self._optional = [2] # _cItems is a dict of column -> QVariant QStringList items, returned # to combo box self._cItems = {} # _cValues is a dict of column -> list of QVariant values, stored when # corresponding label stored by combobox self._cValues = {} # _idents is a list of identifier lookup fields self._idents = [] # _types is a list of types for validation self._types = [bool, str, str] # rows is a list of rows. each row is a list of QVariants self.rows = [] # work out the header and descriptions from the ArgInfo object a = ob.ArgInfo # for required names just process the ArgType object for name in a.required_names: self.__processArgType(name, a.descriptions[name]) # for defaulted names give it a default too for name, default in zip(a.default_names, a.default_values): self.__processArgType(name, a.descriptions[name], default=default) # for optional names flag it as optional for name in a.optional_names: self.__processArgType(name, a.descriptions[name], optional=True) # maps (filt, without, upto) -> (timestamp, stringList) self._cachedNameList = {} # this is the top left item visible in the TableView widget self.topLeftIndex = None
def __init__(self, parent=None): # Construye la MainWindow QtGui.QMainWindow.__init__(self, parent) self.setupUi(self) # Define una QUndoStack (no usado) self.undoStack = QUndoStack(self) # Conecta los botones de la Barra de herramientas self.actionAbrir.triggered.connect(self.abrir_click) self.actionGuardar.triggered.connect(self.guardar_click) self.actionCerrar.triggered.connect(self.cerrar_click) self.actionUmbralizar.triggered.connect(self.umbralizar_click) self.actionEscalaDeGrises.triggered.connect(self.escalaGrises_click) self.actionRGB.triggered.connect(self.RGB_click) self.actionDeshacer.triggered.connect(self.deshacer_click) self.actionSuma.triggered.connect(self.suma_click) self.actionResta.triggered.connect(self.resta_click) self.actionMultiplicacion.triggered.connect(self.multiplicacion_click) self.actionAnd.triggered.connect(self.and_click) self.actionOr.triggered.connect(self.or_click) self.actionExor.triggered.connect(self.exor_click) self.actionNot.triggered.connect(self.not_click) self.actionHist.triggered.connect(self.hist_click) self.actionExpand.triggered.connect(self.expand_click) self.actionContr.triggered.connect(self.cont_click) self.actionDespl.triggered.connect(self.desp_click) self.actionEcu.triggered.connect(self.ecu_click) self.actionPromedio.triggered.connect(self.prom_click) self.actionPromedio_Pesado.triggered.connect(self.prom_pesado_click) self.actionFiltro_gausiano.triggered.connect(self.gausiano_click) self.actionLaplaciano.triggered.connect(self.laplaciano_click) self.actionPrewitt.triggered.connect(self.prewitt_click) self.actionSobel.triggered.connect(self.sobel_click) self.actionRobert.triggered.connect(self.robert_click) self.actionCierre.triggered.connect(self.cierre_click) self.actionApertura.triggered.connect(self.apertura_click) self.actionPasabanda.triggered.connect(self.pasabanda_click) self.actionMultiumbral.triggered.connect(self.multiumbral_click)
def __init__(self, *args, **kwords): QMainWindow.__init__(self, *args) self.undo_stack = QUndoStack(self) self.ui = Ui_TrackingWindow() self.ui.setupUi(self) self._project = None self._data = None self.toolGroup = QActionGroup(self) self.toolGroup.addAction(self.ui.actionAdd_point) self.toolGroup.addAction(self.ui.action_Move_point) self.toolGroup.addAction(self.ui.actionAdd_cell) self.toolGroup.addAction(self.ui.actionRemove_cell) self.toolGroup.addAction(self.ui.action_Pan) self.toolGroup.addAction(self.ui.actionZoom_out) self.toolGroup.addAction(self.ui.actionZoom_in) self.previousSelAct = QActionGroup(self) self.previousSelAct.addAction( self.ui.actionCopy_selection_from_Previous) self.previousSelAct.addAction(self.ui.actionDelete_Previous) self.previousSelAct.setEnabled(False) self.currentSelAct = QActionGroup(self) self.currentSelAct.addAction(self.ui.actionCopy_selection_from_Current) self.currentSelAct.addAction(self.ui.actionDelete_Current) self.currentSelAct.setEnabled(False) self.projectAct = QActionGroup(self) self.projectAct.addAction(self.ui.action_Next_image) self.projectAct.addAction(self.ui.action_Previous_image) self.projectAct.addAction(self.ui.actionAdd_point) self.projectAct.addAction(self.ui.action_Move_point) self.projectAct.addAction(self.ui.action_Pan) self.projectAct.addAction(self.ui.actionAdd_cell) self.projectAct.addAction(self.ui.actionRemove_cell) self.projectAct.addAction(self.ui.action_Change_data_file) self.projectAct.addAction(self.ui.actionNew_data_file) self.projectAct.addAction(self.ui.actionZoom_out) self.projectAct.addAction(self.ui.actionZoom_in) self.projectAct.addAction(self.ui.actionSave_as) self.projectAct.addAction(self.ui.action_Fit) self.projectAct.addAction(self.ui.actionZoom_100) self.projectAct.addAction(self.ui.actionMerge_points) self.projectAct.addAction(self.ui.actionCopy_from_previous) self.projectAct.addAction(self.ui.actionCopy_from_current) self.projectAct.addAction(self.ui.actionReset_alignment) self.projectAct.addAction(self.ui.actionAlign_images) self.projectAct.addAction(self.ui.actionSelectPreviousAll) self.projectAct.addAction(self.ui.actionSelectPreviousNew) self.projectAct.addAction(self.ui.actionSelectPreviousNone) self.projectAct.addAction(self.ui.actionSelectPreviousNon_associated) self.projectAct.addAction(self.ui.actionSelectPreviousAssociated) self.projectAct.addAction(self.ui.actionSelectPreviousInvert) self.projectAct.addAction(self.ui.actionSelectCurrentAll) self.projectAct.addAction(self.ui.actionSelectCurrentNew) self.projectAct.addAction(self.ui.actionSelectCurrentNone) self.projectAct.addAction(self.ui.actionSelectCurrentNon_associated) self.projectAct.addAction(self.ui.actionSelectCurrentAssociated) self.projectAct.addAction(self.ui.actionSelectCurrentInvert) self.projectAct.addAction(self.ui.actionEdit_timing) self.projectAct.addAction(self.ui.actionEdit_scales) self.projectAct.addAction(self.ui.actionCompute_growth) self.projectAct.addAction(self.ui.actionClean_cells) self.projectAct.addAction(self.ui.actionGotoCell) self.projectAct.setEnabled(False) current_sel_actions = [ self.ui.actionSelectCurrentAll, self.ui.actionSelectCurrentNew, self.ui.actionSelectCurrentNone, self.ui.actionSelectCurrentInvert, '-', self.ui.actionSelectCurrentNon_associated, self.ui.actionSelectCurrentAssociated, self.ui.actionCopy_selection_from_Previous ] previous_sel_actions = [ self.ui.actionSelectPreviousAll, self.ui.actionSelectPreviousNew, self.ui.actionSelectPreviousNone, self.ui.actionSelectPreviousInvert, '-', self.ui.actionSelectPreviousNon_associated, self.ui.actionSelectPreviousAssociated, self.ui.actionCopy_selection_from_Current ] self._previousScene = TrackingScene(self.undo_stack, self.ui.actionDelete_Previous, previous_sel_actions, self) self._currentScene = LinkedTrackingScene(self._previousScene, self.undo_stack, self.ui.actionDelete_Current, current_sel_actions, self) self._previousScene.hasSelectionChanged.connect( self.previousSelAct.setEnabled) self._currentScene.hasSelectionChanged.connect( self.currentSelAct.setEnabled) self._previousScene.realSceneSizeChanged.connect(self.sceneSizeChanged) self._currentScene.realSceneSizeChanged.connect(self.sceneSizeChanged) self._previousScene.zoomIn[QPointF].connect(self.zoomIn) self._currentScene.zoomIn.connect(self.zoomIn) self._previousScene.zoomOut[QPointF].connect(self.zoomOut) self._currentScene.zoomOut.connect(self.zoomOut) self.ui.previousData.setScene(self._previousScene) self.ui.currentData.setScene(self._currentScene) self.ui.previousData.setDragMode(QGraphicsView.ScrollHandDrag) self.ui.currentData.setDragMode(QGraphicsView.ScrollHandDrag) #self.ui.previousData.setCacheMode(QGraphicsView.CacheBackground) #self.ui.currentData.setCacheMode(QGraphicsView.CacheBackground) # Redefine shortcuts to standard key sequences self.ui.action_Save.setShortcut(QKeySequence.Save) self.ui.actionSave_as.setShortcut(QKeySequence.SaveAs) self.ui.action_Open_project.setShortcut(QKeySequence.Open) self.ui.action_Undo.setShortcut(QKeySequence.Undo) self.ui.action_Redo.setShortcut(QKeySequence.Redo) self.ui.action_Next_image.setShortcut(QKeySequence.Forward) self.ui.action_Previous_image.setShortcut(QKeySequence.Back) # Connecting undo stack signals self.ui.action_Undo.triggered.connect(self.undo) self.ui.action_Redo.triggered.connect(self.redo) self.undo_stack.canRedoChanged[bool].connect( self.ui.action_Redo.setEnabled) self.undo_stack.canUndoChanged[bool].connect( self.ui.action_Undo.setEnabled) self.undo_stack.redoTextChanged["const QString&"].connect( self.changeRedoText) self.undo_stack.undoTextChanged["const QString&"].connect( self.changeUndoText) self.undo_stack.cleanChanged[bool].connect( self.ui.action_Save.setDisabled) # link_icon = QIcon() # pix = QPixmap(":/icons/link.png") # link_icon.addPixmap(pix, QIcon.Normal, QIcon.On) # pix = QPixmap(":/icons/link_broken.png") # link_icon.addPixmap(pix, QIcon.Normal, QIcon.Off) # self.link_icon = link_icon # #self.ui.linkViews.setIconSize(QSize(64,32)) # self.ui.linkViews.setIcon(link_icon) self._recent_projects_menu = QMenu(self) self.ui.actionRecent_projects.setMenu(self._recent_projects_menu) self._recent_projects_act = [] self._projects_mapper = QSignalMapper(self) self._projects_mapper.mapped[int].connect(self.loadRecentProject) self.param_dlg = None # Setting up the status bar bar = self.statusBar() # Adding current directory cur_dir = QLabel("") bar.addPermanentWidget(cur_dir) self._current_dir_label = cur_dir # Adding up zoom zoom = QLabel("") bar.addPermanentWidget(zoom) self._zoom_label = zoom self.changeZoom(1) self.loadConfig() parameters.instance.renderingChanged.connect(self.changeRendering) self.changeRendering()
def createActions(self): self.undoGroup = QUndoGroup(self) self.undoStack = QUndoStack(self) self.__createUndoRedoActions() self.slots["File"] = FileSlots(self) self.slots["List"] = ListSlots(self) self.slots["Edit"] = EditSlots(self) self.slots["Item"] = ItemSlots(self) self.slots["Server"] = ServerSlots(self) self.slots["Help"] = HelpSlots(self) self.slots["Windows"] = WindowsSlots(self) for sl in self.slots.values(): self.__setActions(sl) self.__setTasks(sl) self.slots["Windows"].updateWindowMenu() if not PYTANGO_AVAILABLE: self.ui.actionConnectServer.setDisabled(True) self.disableServer(True) viewCompDockAction = self.ui.compDockWidget.toggleViewAction() viewCompDockAction.setToolTip("Show/Hide the dock lists") viewCompDockAction.setStatusTip("Show/Hide the dock lists") viewLogDockAction = self.ui.logDockWidget.toggleViewAction() viewLogDockAction.setToolTip("Show/Hide the logger") viewLogDockAction.setStatusTip("Show/Hide the logger") self.ui.menuView.insertAction(self.ui.menuView.actions()[0], viewLogDockAction) self.ui.menuView.insertAction(self.ui.menuView.actions()[0], viewCompDockAction) self.__setAction(self.ui.actionAllAttributesView, "&All Attributes", self.viewAllAttributes, "", tip="Go to the component list", checkable=True) # Signals self.connect(self.componentList.ui.elementListWidget, SIGNAL("itemDoubleClicked(QListWidgetItem*)"), self.slots["Edit"].componentEdit) self.connect(self.sourceList.ui.elementListWidget, SIGNAL("itemDoubleClicked(QListWidgetItem*)"), self.slots["Edit"].dsourceEdit) ## Component context menu self.ui.mdi.setContextMenuPolicy(Qt.ActionsContextMenu) self.contextMenuActions = ( self.ui.actionNewGroupItem, self.ui.actionNewFieldItem, self.ui.actionNewDataSourceItem, self.ui.actionNewStrategyItem, self.ui.actionNewAttributeItem, self.ui.actionNewLinkItem, None, self.ui.actionLoadSubComponentItem, self.ui.actionLoadDataSourceItem, None, self.ui.actionAddDataSourceItem, self.ui.actionLinkDataSourceItem, None, self.ui.actionCutItem, self.ui.actionCopyItem, self.ui.actionPasteItem, self.ui.actionTakeDataSourceItem, None, self.ui.actionMoveUpComponentItem, self.ui.actionMoveDownComponentItem, None, self.ui.actionApplyComponentItem, None, self.ui.actionClearComponentItems) ## Component list menu self.componentListMenuActions = ( self.ui.actionNew, self.ui.actionEditComponent, self.ui.actionMergeComponentItems, self.ui.actionClose, None, { "File": (self.ui.actionLoad, self.ui.actionSave, self.ui.actionSaveAs, self.ui.actionSaveAll, self.ui.actionReloadList, self.ui.actionChangeDirectory) }, None, { "Server": (self.ui.actionFetchComponentsServer, self.ui.actionStoreComponentServer, self.ui.actionStoreAllComponentsServer, self.ui.actionDeleteComponentServer, self.ui.actionGetMandatoryComponentsServer, self.ui.actionSetComponentMandatoryServer, self.ui.actionUnsetComponentMandatoryServer) }, None, self.ui.actionTakeDataSources) ## DataSource list menu self.dsourceListMenuActions = ( self.ui.actionNewDataSource, self.ui.actionEditDataSource, self.ui.actionApplyDataSource, self.ui.actionCloseDataSource, None, self.ui.actionCopyDataSource, self.ui.actionCutDataSource, self.ui.actionPasteDataSource, None, { "File": (self.ui.actionLoadDataSource, self.ui.actionSaveDataSource, self.ui.actionSaveDataSourceAs, self.ui.actionSaveAllDataSources, self.ui.actionReloadDataSourceList, self.ui.actionChangeDataSourceDirectory) }, None, { "Server": (self.ui.actionFetchDataSourcesServer, self.ui.actionStoreDataSourceServer, self.ui.actionStoreAllDataSourcesServer, self.ui.actionDeleteDataSourceServer) }) # datasource widget actions self.externalDSActions = { "externalSave": self.slots["File"].dsourceSaveButton, "externalApply": self.slots["Edit"].dsourceApplyButton, "externalClose": self.slots["Windows"].dsourceClose, "externalStore": self.slots["Server"].serverStoreDataSourceButton } # component widget actions self.externalCPActions = { "externalSave": self.slots["File"].componentSaveButton, "externalStore": self.slots["Server"].serverStoreComponentButton, "externalApply": self.slots["Item"].componentApplyItemButton, "externalClose": self.slots["Windows"].componentClose, "externalDSLink": self.slots["Item"].componentLinkDataSourceItemButton }