def makeAction(self): """Create all the actions used on the toolbars and menus """ self.zoomAct = Qt.QAction(Qt.QIcon('img/zoom-original.svg'), self._tr('&Autoscale'), self) Qt.QObject.connect(self.zoomAct, Qt.SIGNAL("triggered()"), self.clearZoomStack) self.logScaleAct = Qt.QAction(Qt.QIcon('img/log-scale.svg'), self._tr('Show &logarithmic scale'), self) self.logScaleAct.setCheckable(True) Qt.QObject.connect(self.logScaleAct, Qt.SIGNAL("triggered()"), self.toggleLogScale) self.printAct = Qt.QAction(Qt.QIcon('img/print.svg'), self._tr('Print...'), self) Qt.QObject.connect(self.printAct, Qt.SIGNAL("triggered()"), self.printPlot) self.exportPdfAct = Qt.QAction(Qt.QIcon('img/export-pdf.svg'), self._tr('Export to pdf...'), self) Qt.QObject.connect(self.exportPdfAct, Qt.SIGNAL("triggered()"), self.exportPDF) self.exportSvgAct = Qt.QAction(Qt.QIcon('img/export-svg.svg'), self._tr('Export to svg...'), self) Qt.QObject.connect(self.exportSvgAct, Qt.SIGNAL("triggered()"), self.exportSVG)
def createActions(self): """ Create the widget's actions """ self.quitAct = Qt.QAction(_tr("&Quit"), self) self.quitAct.setIcon(Qt.QIcon('img/quit.svgz')) Qt.QObject.connect(self.quitAct, Qt.SIGNAL("triggered()"), self.confirmQuit) self.quitAct.setShortcut(_tr('Ctrl+Q')) self.cancelAct = Qt.QAction(_tr("Stop"), self) self.cancelAct.setIcon(Qt.QIcon('img/stop.svgz')) Qt.QObject.connect(self.cancelAct, Qt.SIGNAL("triggered()"), self.cancelConvert) self.cancelAct.setEnabled(False) self.startAct = Qt.QAction(Qt.QIcon('img/start.svgz'), _tr('Start'), self) Qt.QObject.connect(self.startAct, Qt.SIGNAL("triggered()"), self.startConvert) self.configureAct = Qt.QAction(self) self.configureAct.setIcon(Qt.QIcon('img/config.svgz')) self.configureAct.setText(_tr('Show options')) Qt.QObject.connect(self.configureAct, Qt.SIGNAL("triggered()"), lambda: self.configWidget.setVisible(True))
def __init__(self, selection_highlighter_QwtPlotCurve, *args): """Constructor""" Qwt.QwtPlotPicker.__init__(self, *args) self.connect(self, Qt.SIGNAL("selected(const QwtDoublePoint&)"), self.highlight_selected_curve) self.selection_highlighter_curve = \ selection_highlighter_QwtPlotCurve self.selected_curve = [] QwtPlot_obj = self.plot() QwtPlot_obj.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) # Actions self.actionLineWidth = Qt.QAction(Qt.QIcon(), "Line Width", QwtPlot_obj) self.connect(self.actionLineWidth, Qt.SIGNAL("triggered()"), self._slotActionLineWidthTriggered) self.actionLineColor = Qt.QAction(Qt.QIcon(), "Line Color", QwtPlot_obj) self.connect(self.actionLineColor, Qt.SIGNAL("triggered()"), self._slotActionLineColorTriggered) # Popup Menu self.popMenu = QMenu(QwtPlot_obj) self.popMenu.addAction(self.actionLineWidth) self.popMenu.addSeparator() self.popMenu.addAction(self.actionLineColor)
def init(self): self.__axis_provider = dict() self.__curves_by_provider = dict() self.graphLayout = Qt.QVBoxLayout() self.graphSubLayout = Qt.QHBoxLayout() self.qtBlissGraph = QtBlissGraph() self.graphLayout.addWidget(self.qtBlissGraph) self.printPushButton = Qt.QPushButton("Print") self.graphSubLayout.addWidget(self.printPushButton) Qt.QObject.connect(self.printPushButton, Qt.SIGNAL("clicked()"), self.printPushButtonClicked) self.current_scale = "linear" self.scalePushButton = Qt.QPushButton("Scale") self.scaleMenu = Qt.QMenu(self.scalePushButton) self.scaleActionGroup = Qt.QActionGroup(self.scaleMenu) self.scaleMenuLinear = Qt.QAction("Linear", self.scaleActionGroup) self.scaleMenuLinear.setCheckable(True) self.scaleMenu.addAction(self.scaleMenuLinear) self.scaleMenuLogarithmic = Qt.QAction("Logarithmic", self.scaleActionGroup) self.scaleMenuLogarithmic.setCheckable(True) self.scaleMenu.addAction(self.scaleMenuLogarithmic) Qt.QObject.connect(self.scaleActionGroup, Qt.SIGNAL("triggered(QAction*)"), self.scaleActionGroupTriggered) self.scalePushButton.setMenu(self.scaleMenu) self.graphSubLayout.addWidget(self.scalePushButton) self.gridPushButton = Qt.QPushButton("Grid") self.gridMenu = Qt.QMenu(self.gridPushButton) self.gridActionGroup = Qt.QActionGroup(self.gridMenu) self.gridMenuEnable = Qt.QAction("Enable", self.gridActionGroup) self.gridMenuEnable.setCheckable(True) self.gridMenu.addAction(self.gridMenuEnable) self.gridMenuDisable = Qt.QAction("Disable", self.gridActionGroup) self.gridMenuDisable.setCheckable(True) self.gridMenuDisable.setChecked(True) self.gridMenu.addAction(self.gridMenuDisable) Qt.QObject.connect(self.gridActionGroup, Qt.SIGNAL("triggered(QAction*)"), self.gridActionGroupTriggered) self.gridPushButton.setMenu(self.gridMenu) self.graphSubLayout.addWidget(self.gridPushButton) self.resetPushButton = Qt.QPushButton("Reset") self.graphSubLayout.addWidget(self.resetPushButton) Qt.QObject.connect(self.resetPushButton, Qt.SIGNAL("clicked()"), self.resetPushButtonClicked) self.graphLayout.addLayout(self.graphSubLayout) self.brick_widget.setLayout(self.graphLayout) self.curveData = {} self.timeAxisX = False self.timeAxisElapsedTime = True self.windowSize = None
def createActions(self): self.settingsAction = Qt.QAction("&Settings", self) Qt.QObject.connect(self.settingsAction, Qt.SIGNAL("triggered()"), self.openSettings) self.aboutAction = Qt.QAction("&About", self) Qt.QObject.connect(self.aboutAction, Qt.SIGNAL("triggered()"), self.about) self.quitAction = Qt.QAction("&Quit", self) Qt.QObject.connect(self.quitAction, Qt.SIGNAL("triggered()"), Qt.qApp, Qt.SLOT("quit()"))
def initUI(self): exitAction = Qt.QAction("&Quit", self) #exitAction = QtGui.QAction(QtGui.QIcon('exit.png'), '&Exit', self) #exitAction.setShortcut('Ctrl+Q') #exitAction.setStatusTip('Exit application') exitAction.triggered.connect(self.close) view_results = Qt.QAction("&View Raw Data", self) view_results.triggered.connect(self.view_results) load_results = Qt.QAction("&Load Raw Data", self) load_results.triggered.connect(self.load_results) analyseResults1 = Qt.QAction("&Grid Time Analysis", self) analyseResults1.triggered.connect(self.grid_time_analysis) analyseResults2 = Qt.QAction("ROI Time Analysis", self) analyseResults2.triggered.connect(self.roi_time_analysis) analyseResults3 = Qt.QAction("&Animal Movement Scatterplot", self) analyseResults3.triggered.connect(self.animal_movement_scatterplot) analyseResults4 = Qt.QAction("&Animal Movement Heatmap", self) analyseResults4.triggered.connect(self.animal_movement_heatmap) analyseResults5 = Qt.QAction("&Locomotor Parameters", self) analyseResults5.triggered.connect(self.locomotor_parameters) menubar = self.menuBar() fileMenu = menubar.addMenu('&File') fileMenu.addAction(exitAction) resultsMenu = menubar.addMenu("&Results") resultsMenu.addAction(view_results) resultsMenu.addSeparator() resultsMenu.addAction(load_results) analysisMenu = menubar.addMenu("&Data Analysis") analysisMenu.addAction(analyseResults1) analysisMenu.addAction(analyseResults2) analysisMenu.addAction(analyseResults3) analysisMenu.addAction(analyseResults4) analysisMenu.addAction(analyseResults5) self.setMinimumWidth(1150) #self.setMinimumHeight(800) self.setWindowTitle(self.tr("RATRACTION")) self.show()
def createAction(self, text="", slot=None, shortcut=None, icon=None, tip=None, checkable=False, signal="triggered()"): action = Qt.QAction(text, self) if icon is not None: action.setIcon(Qt.QIcon(icon)) if shortcut is not None: action.setShortcut(shortcut) if tip is not None: action.setToolTip(tip) action.setStatusTip(tip) if slot is not None: Qt.QObject.connect(action, Qt.SIGNAL(signal), slot) if checkable: action.setCheckable(True) return action
def makeAction(self): """Create all the actions used on the toolbars and menus """ self.openAct = Qt.QAction(Qt.QIcon('img/open.svg'), _tr('&Open...'), self) self.openAct.setShortcut(_tr('Ctrl+o')) Qt.QObject.connect(self.openAct, Qt.SIGNAL("triggered()"), self.openFile) self.saveAsAct = Qt.QAction(Qt.QIcon('img/saveas.svg'), _tr('&Save as...'), self) self.saveAsAct.setShortcut(_tr('Ctrl+S')) Qt.QObject.connect(self.saveAsAct, Qt.SIGNAL("triggered()"), self.saveAs) self.quitAct = Qt.QAction(Qt.QIcon('img/quit.svg'), _tr('&Quit'), self) self.quitAct.setShortcut(_tr('Ctrl+Q')) Qt.QObject.connect(self.quitAct, Qt.SIGNAL("triggered()"), self, Qt.SLOT("close()")) self.startAct = Qt.QAction(Qt.QIcon('img/start.svg'), _tr('Start'), self) Qt.QObject.connect(self.startAct, Qt.SIGNAL("triggered()"), self.startMeasurement) self.startAct.setCheckable(True) self.clearAct = Qt.QAction(Qt.QIcon('img/stop.svg'), _tr('Stop'), self) Qt.QObject.connect(self.clearAct, Qt.SIGNAL("triggered()"), self.clearMeasurement) self.pauseAct = Qt.QAction(Qt.QIcon('img/pause.svg'), _tr('Pause'), self) Qt.QObject.connect(self.pauseAct, Qt.SIGNAL("triggered()"), self.pauseMeasurement) self.pauseAct.setCheckable(True) self.configureAct = self.configDock.toggleViewAction() self.configureAct.setIcon(Qt.QIcon('img/config.svg')) self.configureAct.setText(_tr('Show options'))
def __init__(__, argv=[]): qt.QWidget.__init__(__) __.setWindowIcon(qt.QIcon("ico/fuz.ico")) __.setWindowTitle("Fusion files") __.path = get_path(sys.argv[0]) __.archive = "" temp = "" if len(argv) > 1: temp = unicode(" ".join(argv[1:]), "cp1252").replace("\\", "/") if get_ext(temp) == "fuz": __.mode = True __.archive = temp[:] else: __.mode = False __.archive_ind = "" __.index_dir = (0, 0) __.Tabs = qt.QTabWidget(__) __.Struct = qt.QWidget(__) __.Struct.Archive_name = qt.QPushButton(__.archive, __.Struct) __.Struct.Add_dir = qt.QPushButton("Ajouter un dossier", __.Struct) __.Struct.Add_dir.setVisible(False) __.Struct.Add_file = qt.QPushButton("Ajouter des fichiers", __.Struct) __.Struct.Ouvrir_dossier = qt.QPushButton("Ouvrir dossier", __.Struct) __.Struct.Dossier_parent = qt.QPushButton("Dossier parent", __.Struct) __.Struct.Extraire = qt.QPushButton("Tout extraire", __.Struct) __.Struct.Extraire_dossier = qt.QPushButton("Extraire dossier", __.Struct) __.Struct.Extraire_file = qt.QPushButton("Extraire fichier", __.Struct) __.Struct.Action_ouvrir_dossier = qt.QAction(__) __.Struct.Name = qt.QLineEdit(__.Struct) __.Struct.Name.setReadOnly(True) __.Struct.Dossier = qt.QLabel(__.Struct) __.Struct.Dossier.setText("Dossiers : 0") __.Struct.List_dossier = qt.QListWidget(__.Struct) __.Struct.Fichier = qt.QLabel(__.Struct) __.Struct.Fichier.setText("Fichiers : 0") __.Struct.List_fichier = qt.QListWidget(__.Struct) __.Struct2 = qt.QWidget(__) __.Struct2.Layout = qt.QGridLayout(__.Struct2) __.Struct2.Archive_name = qt.QLineEdit(__.Struct2) __.Struct2.Dossier = qt.QLabel(__.Struct2) __.Struct2.List_dossier = qt.QListWidget(__.Struct2) if is_dir(temp): __.Struct2.List_dossier.addItem(temp) __.Struct2.Dossier.setText("Dossiers : 1") else: __.Struct2.Dossier.setText("Dossiers : 0") __.Struct2.Add_dir = qt.QPushButton("Ajouter un dossier", __.Struct2) __.Struct2.Suppr_dossier = qt.QPushButton("Retirer un dossier", __.Struct2) __.Struct2.Fichier = qt.QLabel(__.Struct2) __.Struct2.List_fichier = qt.QListWidget(__.Struct2) if is_file(temp): __.Struct2.List_fichier.addItem(temp) __.Struct2.Fichier.setText("Fichiers : 1") else: __.Struct2.Fichier.setText("Fichiers : 0") __.Struct2.Add_file = qt.QPushButton("Ajouter des fichiers", __.Struct2) __.Struct2.Suppr_fichier = qt.QPushButton("Retirer un fichier", __.Struct2) __.Struct2.Fusionner = qt.QPushButton("Fusionner", __.Struct2) __.Struct2.Autoextract = qt.QPushButton("Créer auto-extractible", __.Struct2) __.Path = qt.QPushButton(__) __.Path.setWhatsThis("Fusionner/Extraire vers") #__.Menu = qt.QMenuBar(__) #__.Menu_fichier = __.Menu.addMenu("Fichier") #__.Action_ouvrir = __.Menu_fichier.addAction("Ouvrir archive") __.Action_ouvrir = qt.QAction("Ouvrir archive", __) __.Status_bar = qt.QStatusBar(__) __.Status_bar.showMessage("By W3YZOH0RTH") __.Status_progress = qt.QProgressBar(__.Status_bar) __.Status_bar.addPermanentWidget(__.Status_progress) __.Tabs.addTab(__.Struct2, "Fusion") __.Tabs.addTab(__.Struct, "Extraction") if __.mode: __.Tabs.setCurrentIndex(1) __.VLayout = qt.QVBoxLayout(__) #__.VLayout.addWidget(__.Menu) __.VLayout.addWidget(__.Path) __.VLayout.addWidget(__.Tabs) __.VLayout.addWidget(__.Status_bar) __.setLayout(__.VLayout) __.Struct.Layout = qt.QGridLayout(__.Struct) __.Struct.Layout.addWidget(__.Struct.Archive_name, 0, 0, 1, 4) __.Struct.Layout.addWidget(__.Struct.Name, 1, 0, 1, 4) __.Struct.Layout.addWidget(__.Struct.Add_file, 2, 2, 1, 2) #__.Struct.Layout.addWidget(__.Struct.Add_dir, 2, 0, 1, 2) __.Struct.Layout.addWidget(__.Struct.Fichier, 3, 2, 1, 1) __.Struct.Layout.addWidget(__.Struct.Dossier, 3, 0, 1, 1) __.Struct.Layout.addWidget(__.Struct.List_dossier, 4, 0, 1, 2) __.Struct.Layout.addWidget(__.Struct.List_fichier, 4, 2, 1, 2) __.Struct.Layout.addWidget(__.Struct.Ouvrir_dossier, 5, 0, 1, 1) __.Struct.Layout.addWidget(__.Struct.Dossier_parent, 5, 1, 1, 1) __.Struct.Layout.addWidget(__.Struct.Extraire_dossier, 6, 0, 1, 2) __.Struct.Layout.addWidget(__.Struct.Extraire_file, 6, 2, 1, 2) __.Struct.Layout.addWidget(__.Struct.Extraire, 5, 2, 1, 2) __.Struct.setLayout(__.Struct.Layout) __.Struct2.Layout.addWidget(__.Struct2.Archive_name, 0, 0, 1, 4) __.Struct2.Layout.addWidget(__.Struct2.Add_dir, 1, 0, 1, 2) __.Struct2.Layout.addWidget(__.Struct2.Add_file, 1, 2, 1, 2) __.Struct2.Layout.addWidget(__.Struct2.Fichier, 2, 2, 1, 1) __.Struct2.Layout.addWidget(__.Struct2.Dossier, 2, 0, 1, 1) __.Struct2.Layout.addWidget(__.Struct2.List_dossier, 3, 0, 1, 2) __.Struct2.Layout.addWidget(__.Struct2.List_fichier, 3, 2, 1, 2) __.Struct2.Layout.addWidget(__.Struct2.Suppr_dossier, 4, 0, 1, 2) __.Struct2.Layout.addWidget(__.Struct2.Suppr_fichier, 4, 2, 1, 2) __.Struct2.Layout.addWidget(__.Struct2.Fusionner, 6, 0, 1, 2) __.Struct2.Layout.addWidget(__.Struct2.Autoextract, 6, 2, 1, 2) __.Struct2.setLayout(__.Struct2.Layout) qt.qApp.connect(__.Action_ouvrir, qt.SIGNAL("triggered()"), __.slot_ouvrir) qt.qApp.connect(__.Struct.Action_ouvrir_dossier, qt.SIGNAL("triggered()"), __.slot_open_dir) qt.qApp.connect(__.Struct.Archive_name, qt.SIGNAL("clicked()"), __.Action_ouvrir.trigger) qt.qApp.connect(__.Struct.Ouvrir_dossier, qt.SIGNAL("clicked()"), __.Struct.Action_ouvrir_dossier.trigger) qt.qApp.connect(__.Struct.Dossier_parent, qt.SIGNAL("clicked()"), __.slot_retour) qt.qApp.connect(__.Struct.Extraire, qt.SIGNAL("clicked()"), __.slot_extraire_all) qt.qApp.connect(__.Struct.Extraire_file, qt.SIGNAL("clicked()"), __.slot_extraire_file) qt.qApp.connect(__.Struct.Extraire_dossier, qt.SIGNAL("clicked()"), __.slot_extraire_dir) qt.qApp.connect(__.Struct.Add_file, qt.SIGNAL("clicked()"), __.slot_add_fichier) qt.qApp.connect(__.Struct.Add_dir, qt.SIGNAL("clicked()"), __.slot_add_dossier) qt.qApp.connect(__.Struct2.Add_file, qt.SIGNAL("clicked()"), __.slot_add_fichier) qt.qApp.connect(__.Struct2.Add_dir, qt.SIGNAL("clicked()"), __.slot_add_dossier) qt.qApp.connect(__.Struct2.Suppr_fichier, qt.SIGNAL("clicked()"), __.slot_suppr_fichier) qt.qApp.connect(__.Struct2.Suppr_dossier, qt.SIGNAL("clicked()"), __.slot_suppr_dossier) qt.qApp.connect(__.Struct2.Fusionner, qt.SIGNAL("clicked()"), __.slot_fusionner) qt.qApp.connect(__.Struct2.Autoextract, qt.SIGNAL("clicked()"), lambda fct=create_autoextract: __.slot_fusionner(fct)) qt.qApp.connect(__.Path, qt.SIGNAL("clicked()"), __.slot_change_path) #qt.qApp.connect(__.Struct.List_dossier, qt.SIGNAL("itemSelectionChanged()"), __.Struct.Action_ouvrir_dossier.trigger) if __.archive: __.slot_ouvrir(True)
def __init__(self, plot_key="", parent=None): Qwt.QwtPlot.__init__(self, parent) self.mainwin = parent and parent.topLevelWidget() # make a QwtPlot widget self.plotLayout().setMargin(0) self.plotLayout().setCanvasMargin(0) self.plotLayout().setAlignCanvasToScales(1) self.setlegend = 1 # self.setAutoLegend(self.setlegend) # self.enableLegend(True) # self.setLegendPos(Qwt.Right) # set fonts for titles # first create copy of standard application font.. self.title_font = Qt.QFont(Qt.QApplication.font()) fi = Qt.QFontInfo(self.title_font) # and scale it down to 70% self.title_font.setPointSize(fi.pointSize() * 0.7) # set axis titles self.title = None text = Qwt.QwtText('Histogram') text.setFont(self.title_font) self.setTitle(text) text = Qwt.QwtText('number in bin') text.setFont(self.title_font) self.setTitle(text) self.setAxisTitle(Qwt.QwtPlot.yLeft, text) # self.zoomStack = [] # set default background to whatever QApplication sez it should be! # self.setCanvasBackground(Qt.QApplication.palette().active().base()) #create a context menu to over-ride the one from Oleg if self.mainwin: self.menu = Qt.QMenu(self.mainwin) else: self.menu = Qt.QMenu(self) self._toggle_legend = Qt.QAction('Toggle Legend', self) self.menu.addAction(self._toggle_legend) self.connect(self._toggle_legend, Qt.SIGNAL("triggered()"), self.handle_toggle_legend) self._disable_zoomer = Qt.QAction('Disable Zoomer', self) self.menu.addAction(self._disable_zoomer) self.connect(self._disable_zoomer, Qt.SIGNAL("triggered()"), self.handle_disable_zoomer) printer = Qt.QAction('Print plot', self) # printer.setIconSet(pixmaps.fileprint.iconset()); self.connect(printer, Qt.SIGNAL("triggered()"), self.printplot) self.menu.addAction(printer) self.spy = Spy(self.canvas()) self.zoom_outline = Qwt.QwtPlotCurve() # self.connect(self, SIGNAL("legendClicked(QwtPlotItem*)"), # self.toggleVisibility) self.connect(self.spy, Qt.SIGNAL("MouseMove"), self.setPosition) self.connect(self.spy, Qt.SIGNAL("MousePress"), self.onMousePressed) self.connect(self.spy, Qt.SIGNAL("MouseRelease"), self.onMouseReleased)
def _createActions(self): """""" self.actionGroup = ActionObjectsGroup() self.actions_dict = {} # Action for Zoom Box zoomBoxAction = Qt.QAction(Qt.QIcon(":/zoom_in.png"), "Zoom &Box", self) zoomBoxAction.setCheckable(True) zoomBoxAction.setToolTip("Zoom into a region of interest") zoomBoxAction.setStatusTip("Zoom into a region of interest") zoomBoxAction.setObjectName("action_zoom_box") self.actionGroup.addAction(zoomBoxAction) self.actions_dict["action_zoom_box"] = zoomBoxAction self.connect(zoomBoxAction, Qt.SIGNAL("toggled(bool)"), self._enableZoomers) # Action for Pan XY panXYAction = Qt.QAction(Qt.QIcon(":/hand.png"), "&Pan XY", self) panXYAction.setCheckable(True) panXYAction.setObjectName("action_pan_xy") self.actionGroup.addAction(panXYAction) self.actions_dict["action_pan_xy"] = panXYAction self.connect(panXYAction, Qt.SIGNAL("toggled(bool)"), self._enablePanners) # Action for Edit Plot editPlotAction = Qt.QAction(Qt.QIcon(":/pointer.png"), "&Edit Plot", self) editPlotAction.setCheckable(True) editPlotAction.setObjectName("action_edit_plot") self.actionGroup.addAction(editPlotAction) self.actions_dict["action_edit_plot"] = editPlotAction self.connect(editPlotAction, Qt.SIGNAL("toggled(bool)"), self._enablePlotEditors) # Action for Data Cursor dataCursorAction = Qt.QAction(Qt.QIcon(":/data_cursor.png"), "Data &Cursor", self) dataCursorAction.setCheckable(True) dataCursorAction.setObjectName("action_data_cursor") self.actionGroup.addAction(dataCursorAction) self.actions_dict["action_data_cursor"] = dataCursorAction self.connect(dataCursorAction, Qt.SIGNAL("toggled(bool)"), self._enableDataCursors) # TODO: # expandToFillAction (just enable auto scale) setCheckable = False # verticalZoomInAction # horizontalZoomInAction # backwardAction # forwardAction # screenshotAction # Connect these actions to the slot ensuring that the selection # of actions is mutually exclusive, or no action is selected. self.connect(zoomBoxAction, Qt.SIGNAL("triggered()"), self._enforceMutualExclusiveness) self.connect(panXYAction, Qt.SIGNAL("triggered()"), self._enforceMutualExclusiveness) self.connect(editPlotAction, Qt.SIGNAL("triggered()"), self._enforceMutualExclusiveness) self.connect(dataCursorAction, Qt.SIGNAL("triggered()"), self._enforceMutualExclusiveness) self.actionGroup.update_check_states()
def addAction(self, menu, text, func): action = Qt.QAction(text, self) Qt.QObject.connect(action, Qt.SIGNAL("triggered(bool)"), func) menu.addAction(action) return action
def __init__(self, fname=None): gui.SlabWindow.__init__(self, HDFViewThread) self.setupSlabWindow(autoparam=True) self.auto_register_gui() self.register_param(self.datasets_treeWidget, "dataset") self.register_param(self.datapath_lineEdit, "datapath") # Setup Plots -- Could be eliminated if QtDesigner plugins were setup self.toolbar = Qt.QToolBar() self.addToolBar(self.toolbar) self.image_widget = ImageWidget(show_xsection=True, show_ysection=True) self.image_widget.add_toolbar(self.toolbar) self.image_widget.register_all_image_tools() self.image_plot = self.image_widget.plot self.image_plot_layout.addWidget(self.image_widget) self.gui["image_plot"] = self.image_plot self.line_widget = CurveWidget() self.gui[ "line_plot"] = self.line_plot = self.line_widget.plot #CurvePlot() self.line_plot_layout.addWidget(self.line_plot) self.line_widget.register_all_image_tools() # Context Menu actions self.set_x_action = Qt.QAction("Set as x data", self) self.clear_x_action = Qt.QAction("Clear x data", self) self.datasets_treeWidget.customContextMenuRequested.connect( lambda point: self.msg("menu requested")) self.datasets_treeWidget.customContextMenuRequested.connect( self.datasets_context_menu) # Connect launchers self.datapath_browse_pushButton.clicked.connect(self.select_datapath) self.register_script("set_datapath", self.datapath_lineEdit) self.register_script("load_file", self.datafiles_listWidget) self.register_script("load_dset", self.datasets_treeWidget) self.register_script("set_x_data", self.set_x_action) self.register_script("clear_x_data", self.clear_x_action) # Syntax Highlighting self.highlight = syntax.PythonHighlighter( self.script_textEdit.document()) # Setup Prompt """ message = "The currently loaded file is stored as 'f'" self.shell = InternalShell(self, message=message) self.shell.set_font(Qt.QFont("Consolas")) self.shell_dockWidget.setWidget(self.shell) self.gui["shell"] = self.shell """ self.start_thread() if fname is not None: self.shell.exit_interpreter() directory = os.path.dirname(fname) nameitem = namedtuple('pseudoitem', ('filename', ))(fname) self.msg(fname) self.set_param("datapath", directory) self.start_script("set_datapath") self.start_script("load_file", nameitem)
def setup_ui(self): # Sidebar / Dockarea self.setCentralWidget(Qt.QSplitter()) self.sidebar = Qt.QWidget() self.sidebar.setLayout(Qt.QVBoxLayout()) self.dock_area = MyDockArea() ItemWidget.dock_area = self.dock_area self.centralWidget().addWidget(self.sidebar) self.centralWidget().addWidget(self.dock_area) self.centralWidget().setSizes([250, 1000]) # Spinner setting number of plots to display simultaneously by default self.max_plots_spinner = Qt.QSpinBox() self.max_plots_spinner.setValue(4) self.max_plots_spinner.valueChanged.connect( self.dock_area.set_max_plots) max_plots_widget = Qt.QWidget() max_plots_widget.setLayout(Qt.QHBoxLayout()) max_plots_widget.layout().addWidget(Qt.QLabel('Maximum Plot Count')) max_plots_widget.layout().addWidget(self.max_plots_spinner) self.sidebar.layout().addWidget(max_plots_widget) # Structure Tree sidebar_splitter = Qt.QSplitter(Qt.Qt.Vertical) self.sidebar.layout().addWidget(sidebar_splitter) self.data_tree_widget = Qt.QTreeWidget() self.data_tree_widget.setColumnCount(3) self.data_tree_widget.setHeaderLabels(['Name', 'Shape', 'Visible?']) self.data_tree_widget.itemSelectionChanged.connect( self.change_edit_widget) self.data_tree_widget.itemDoubleClicked.connect(self.toggle_item) self.data_tree_widget.itemSelectionChanged.connect( self.configure_tree_actions) self.data_tree_widget.setSelectionMode( Qt.QAbstractItemView.ExtendedSelection) self.data_tree_widget.setColumnWidth(0, 150) self.data_tree_widget.setColumnWidth(1, 50) self.data_tree_widget.setColumnWidth(2, 50) self.data_tree_widget.setColumnWidth(3, 50) WindowItem.data_tree_widget = self.data_tree_widget sidebar_splitter.addWidget(self.data_tree_widget) # Structure Tree Context Menu self.multiplot_action = Qt.QAction('Create Multiplot', self) self.multiplot_action.triggered.connect(self.add_multiplot) self.data_tree_widget.addAction(self.multiplot_action) self.parametric_action = Qt.QAction('Plot Pair Parametrically', self) self.parametric_action.triggered.connect( lambda: self.add_multiplot(True)) self.data_tree_widget.addAction(self.parametric_action) self.show_subtree_action = Qt.QAction('Show Subtree', self) self.show_subtree_action.triggered.connect( lambda: self.toggle_selection(show=True)) self.data_tree_widget.addAction(self.show_subtree_action) self.hide_subtree_action = Qt.QAction('Hide Subtree', self) self.hide_subtree_action.triggered.connect( lambda: self.toggle_selection(show=False)) self.data_tree_widget.addAction(self.hide_subtree_action) self.delete_item_action = Qt.QAction('Delete item', self) self.delete_item_action.triggered.connect(lambda: self.delete_item()) self.data_tree_widget.addAction(self.delete_item_action) self.close_item_action = Qt.QAction('Close file', self) self.close_item_action.triggered.connect(lambda: self.delete_item()) self.data_tree_widget.addAction(self.close_item_action) self.rename_item_action = Qt.QAction('Rename item', self) self.rename_item_action.triggered.connect(self.rename_item) self.data_tree_widget.addAction(self.rename_item_action) self.data_tree_widget.setContextMenuPolicy(Qt.Qt.ActionsContextMenu) self.data_tree_widget.itemCollapsed.connect( lambda: self.data_tree_widget.resizeColumnToContents(0)) self.data_tree_widget.itemExpanded.connect( lambda: self.data_tree_widget.resizeColumnToContents(0)) # Attribute Editor Area attrs_widget_box = Qt.QWidget() attrs_widget_box.setLayout(Qt.QVBoxLayout()) WindowItem.attrs_widget_layout = attrs_widget_box.layout() self.current_edit_widget = None sidebar_splitter.addWidget(attrs_widget_box) # Status Bar self.connected_status = Qt.QLabel('Not Connected') #self.view_status = Qt.QLabel('Empty') self.current_files = None self.statusBar().addWidget(self.connected_status) #self.statusBar().addWidget(self.view_status) self.connection_checker = Qt.QTimer() self.connection_checker.timeout.connect(self.check_connection_status) # Menu bar file_menu = self.menuBar().addMenu('File') self.connect_to_server_action = Qt.QAction('Connect to Dataserver', self) self.connect_to_server_action.triggered.connect( lambda checked: self.connect_dataserver()) file_menu.addAction(self.connect_to_server_action) self.load_file_action = Qt.QAction('Load File', self) self.load_file_action.triggered.connect( lambda checked: self.load_file()) file_menu.addAction(self.load_file_action)
def setupUi(self, Form): self.Form=Form Form.setObjectName("Form") #Form.resize(QtCore.QSize(900, 900)) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) #sizePolicy.setHorizontalStretch(100) #sizePolicy.setVerticalStretch(100) sizePolicy.setHeightForWidth(Form.sizePolicy().hasHeightForWidth()) Form.setSizePolicy(sizePolicy) Form.setMinimumSize(QtCore.QSize(250, 250)) Form.setSizeIncrement(QtCore.QSize(1, 1)) #self.splitWidget = Qt.QSplitter(Form) self.leftWidget = Qt.QWidget(Form)#self.splitWidget) #self.rightWidget = Qt.QWidget(self.splitWidget) #sForm.setBaseSize(QtCore.QSize(200, 200)) self.horizontalLayout_3 = QtGui.QHBoxLayout(Form) self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.Form.setLayout(self.horizontalLayout_3) self.verticalLayout_2 = QtGui.QVBoxLayout() self.verticalLayout_2.setObjectName("verticalLayout_2") self.frame = QtGui.QFrame(Form) self.frame.setFrameShape(QtGui.QFrame.StyledPanel) self.frame.setFrameShadow(QtGui.QFrame.Raised) self.frame.setObjectName("frame") self.frame.setMinimumSize(QtCore.QSize(300, 200)) #--------------------------------------------------------------------------------------- self.leftGridLayout = QtGui.QGridLayout(self.frame) self.leftGridLayout.setObjectName("leftGridLayout") self.comboLabel = QtGui.QLabel(self.frame) self.comboLabel.setObjectName("comboLabel") #self.comboLabel.setMaximumSize(QtCore.QSize(50, 30)) self.comboLabel.hide() self.leftGridLayout.addWidget(self.comboLabel, 0,0,1,1) #<------------- self.contextComboBox = QtGui.QComboBox(self.frame) self.contextComboBox.setObjectName("contextComboBox") self.leftGridLayout.addWidget(self.contextComboBox,0,1,1,5) #<------------- #self.comboButton = QtGui.QPushButton(self.frame) #self.comboButton.setObjectName("comboButton") #self.leftGridLayout.addWidget(self.comboButton,0,5,1,1) #self.comboButton2 = QtGui.QPushButton(self.frame) #self.comboButton2.setObjectName("comboButton2") #self.leftGridLayout.addWidget(self.comboButton2,0,6,1,1) self.infoLabel0_1 = QtGui.QLabel(self.frame) self.infoLabel0_1.setObjectName("infoLabel0_1") #self.infoLabel0_1.setMinimumWidth(60) self.leftGridLayout.addWidget(self.infoLabel0_1, 1,0,1,1) #<------------- self.infoLabel0_1.hide() self.comboBoxx = QtGui.QComboBox(self.frame) self.comboBoxx.setObjectName("comboBoxx") self.leftGridLayout.addWidget(self.comboBoxx, 1,1,1,5) #<------------- self.comboBoxx.hide() self.infoLabel1_1 = QtGui.QLabel(self.frame) self.infoLabel1_1.setObjectName("infoLabel1_1") self.leftGridLayout.addWidget(self.infoLabel1_1, 2,0,1,1) #<------------- self.infoLabel1_1.hide() self.infoLabel1_2 = QtGui.QLabel(self.frame) self.infoLabel1_2.setObjectName("infoLabel1_2") self.leftGridLayout.addWidget(self.infoLabel1_2, 2,1,1,5) #<------------- self.infoLabel1_2.hide() self.regExGridLayout = QtGui.QGridLayout() self.regExLabel = QtGui.QLabel(self.frame) self.regExLabel.setObjectName("regExLabel") self.regExLabel.setText('Type a string to filter alarms') self.regExGridLayout.addWidget(self.regExLabel, 0,0,1,1) self.regExLine = QtGui.QLineEdit(self.frame) self.regExLine.setObjectName("regExLine") self.regExGridLayout.addWidget(self.regExLine, 0,1,1,3) self.regExUpdate = QtGui.QPushButton(self.frame) self.regExUpdate.setObjectName("regExUpdate") self.regExUpdate.setText("Update") self.regExGridLayout.addWidget(self.regExUpdate, 0,4,1,1) self.leftGridLayout.addLayout(self.regExGridLayout, 3,0,1,6) #<------------- self.gridFilterLayout = QtGui.QGridLayout() self.gridFilterLayout.addWidget(Qt.QLabel('Severities:'), 2,0,1,1) self.sevAlarmLabel = QtGui.QLabel(self.frame) self.sevAlarmLabel.setObjectName("sevAlarmLabel") self.sevAlarmLabel.setText('Alarm') #self.sevAlarmLabel.setAlignment(Qt.Qt.AlignHCenter) self.gridFilterLayout.addWidget(self.sevAlarmLabel, 1,1,1,1) self.sevErrorLabel = QtGui.QLabel(self.frame) self.sevErrorLabel.setObjectName("sevErrorLabel") self.sevErrorLabel.setText('Error') #self.sevErrorLabel.setAlignment(Qt.Qt.AlignHCenter) self.gridFilterLayout.addWidget(self.sevErrorLabel, 1,2,1,1) self.sevWarningLabel = QtGui.QLabel(self.frame) self.sevWarningLabel.setObjectName("sevWarningLabel") self.sevWarningLabel.setText('Warning') #self.sevWarningLabel.setAlignment(Qt.Qt.AlignHCenter) self.gridFilterLayout.addWidget(self.sevWarningLabel, 1,3,1,1) self.sevDebugLabel = QtGui.QLabel(self.frame) self.sevDebugLabel.setObjectName("sevDebugLabel") self.sevDebugLabel.setText('Debug') #self.sevDebugLabel.setAlignment(Qt.Qt.AlignHCenter) self.gridFilterLayout.addWidget(self.sevDebugLabel, 1,4,1,1) self.sevAlarmCheckBox = QtGui.QCheckBox() self.sevAlarmCheckBox.setObjectName("sevAlarmCheckBox") self.sevAlarmCheckBox.setChecked(True) #self.sevAlarmCheckBox.setAlignment(Qt.Qt.AlignHCenter) self.gridFilterLayout.addWidget(self.sevAlarmCheckBox, 2,1,1,1) self.sevErrorCheckBox = QtGui.QCheckBox() self.sevErrorCheckBox.setObjectName("sevErrorCheckBox") self.sevErrorCheckBox.setChecked(True) #self.sevErrorCheckBox.setAlignment(Qt.Qt.AlignHCenter) self.gridFilterLayout.addWidget(self.sevErrorCheckBox, 2,2,1,1) self.sevWarningCheckBox = QtGui.QCheckBox() self.sevWarningCheckBox.setObjectName("sevWarningCheckBox") self.sevWarningCheckBox.setChecked(True) #self.sevWarningCheckBox.setAlignment(Qt.Qt.AlignHCenter) self.gridFilterLayout.addWidget(self.sevWarningCheckBox, 2,3,1,1) self.sevDebugCheckBox = QtGui.QCheckBox() self.sevDebugCheckBox.setObjectName("sevDebugCheckBox") self.sevDebugCheckBox.setChecked(False) #self.sevDebugCheckBox.setAlignment(Qt.Qt.AlignHCenter) self.gridFilterLayout.addWidget(self.sevDebugCheckBox, 2,4,1,1) #self.formLayout.addItem(self.gridFilterLayout) self.leftGridLayout.addLayout(self.gridFilterLayout, 4,0,1,6) #<------------- #self.verticalLayout_3.addLayout(self.formLayout) self.listWidget = QtGui.QListWidget(self.frame) self.listWidget.setObjectName("listWidget") self.listWidget.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.listWidget.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection) self.leftGridLayout.addWidget(self.listWidget, 5,0,1,6) #<------------- self.statusLabel = QtGui.QLabel('Loading ...') self.leftGridLayout.addWidget(self.statusLabel,6,0,1,2) #<------------- self.activeLabel = QtGui.QLabel(self.frame) self.activeLabel.setObjectName("activeLabel") self.activeLabel.setText('Show Active Only') #self.gridFilterLayout.addWidget(self.activeLabel, 1,5,1,1) self.leftGridLayout.addWidget(self.activeLabel, 6,2,1,1) #<------------- self.activeCheckBox = QtGui.QCheckBox() self.activeCheckBox.setObjectName("activeCheckBox") self.activeCheckBox.setChecked(False) #self.gridFilterLayout.addWidget(self.activeCheckBox, 2,5,1,1) self.leftGridLayout.addWidget(self.activeCheckBox, 6,3,1,1) #<------------- self.selectLabel = QtGui.QLabel(self.frame) self.selectLabel.setObjectName("selectLabel") self.selectLabel.setText('Select All/None') #self.selectLabel.setAlignment(Qt.Qt.AlignRight) #self.gridFilterLayout.addWidget(self.selectLabel, 1,0,1,1) self.leftGridLayout.addWidget(self.selectLabel, 6,4,1,1) #<------------- self.selectCheckBox = QtGui.QCheckBox() self.selectCheckBox.setObjectName("selectCheckBox") self.selectCheckBox.setChecked(False) #self.selectCheckBox.setAlignment(Qt.Qt.AlignHCenter) #self.gridFilterLayout.addWidget(self.selectCheckBox, 2,0,1,1) self.leftGridLayout.addWidget(self.selectCheckBox, 6,5,1,1) #<------------- #---------------------------------------------------------------------------------------------- self.verticalLayout_2.addWidget(self.frame) self.horizontalLayout_2 = QtGui.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.refreshButton = QtGui.QPushButton(Form) self.refreshButton.setObjectName("refreshButton") self.horizontalLayout_2.addWidget(self.refreshButton) self.refreshButton.hide() self.newButton = QtGui.QPushButton(Form) self.newButton.setObjectName("newButton") self.horizontalLayout_2.addWidget(self.newButton) self.newButton.hide() self.deleteButton = QtGui.QPushButton(Form) self.deleteButton.setObjectName("deleteButton") self.horizontalLayout_2.addWidget(self.deleteButton) self.deleteButton.hide() self.customButton3 = QtGui.QPushButton(Form) self.customButton3.setObjectName("customButton3") self.horizontalLayout_2.addWidget(self.customButton3) self.customButton3.hide() self.verticalLayout_2.addLayout(self.horizontalLayout_2) #self.horizontalLayout_3.addLayout(self.verticalLayout_2) self.leftWidget.setLayout(self.verticalLayout_2) self.verticalLayout = QtGui.QVBoxLayout() self.verticalLayout.setObjectName("verticalLayout") #self.horizontalLayout_5 = QtGui.QHBoxLayout() #self.horizontalLayout_5.setObjectName("horizontalLayout_5") #self.tableLabel = QtGui.QLabel(Form) #self.tableLabel.setObjectName("tableLabel") #self.horizontalLayout_5.addWidget(self.tableLabel) #self.tableLabel.hide() #self.tableLabel.setText("tableLabel") #self.viewComboBox = QtGui.QComboBox(Form) #self.viewComboBox.setObjectName("viewComboBox") #self.horizontalLayout_5.addWidget(self.viewComboBox) #self.viewComboBox.setLayoutDirection(QtCore.Qt.RightToLeft) #self.viewComboBox.addItem("Table View") #self.viewComboBox.addItem("Live View") #self.viewComboBox.addItem("Compare View") #self.viewComboBox.setMaximumWidth(115) #self.viewComboBox.hide() #self.verticalLayout.addLayout(self.horizontalLayout_5) self.frame_2 = QtGui.QFrame(Form) self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel) self.frame_2.setFrameShadow(QtGui.QFrame.Raised) self.frame_2.setObjectName("frame_2") self.frame_2.setMinimumSize(QtCore.QSize(300, 200)) self.gridLayout = QtGui.QGridLayout(self.frame_2) self.gridLayout.setObjectName("gridLayout") #self.tableWidget = QtGui.QTableWidget(self.frame_2) #self.tableWidget.setObjectName("tableWidget") #self.tableWidget.setColumnCount(0) #self.tableWidget.setRowCount(0) #self.gridLayout.addWidget(self.tableWidget) #self.tableWidget.hide() #self.taurusForm = TaurusForm(self.frame_2) #self.taurusForm.setObjectName("taurusForm") #self.taurusForm.hide() self.frame_2.hide() self.verticalLayout.addWidget(self.frame_2) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") #self.customButton4 = QtGui.QPushButton(Form) #self.customButton4.setObjectName("customButton4") #self.horizontalLayout.addWidget(self.customButton4) #self.customButton4.hide() #self.customButton5 = QtGui.QPushButton(Form) #self.customButton5.setObjectName("customButton5") #self.horizontalLayout.addWidget(self.customButton5) #self.customButton5.hide() self.buttonClose = QtGui.QPushButton(Form) self.buttonClose.setObjectName("buttonClose") self.buttonClose.setText(QtGui.QApplication.translate("Form", "Close", None, QtGui.QApplication.UnicodeUTF8)) self.buttonClose.setToolTip(QtGui.QApplication.translate("Form", "Close Application", None, QtGui.QApplication.UnicodeUTF8)) self.icon_close = QtGui.QIcon(":/actions/process-stop.svg") self.buttonClose.setIcon(self.icon_close) self.buttonClose.hide() self.horizontalLayout.addWidget(self.buttonClose) self.verticalLayout.addLayout(self.horizontalLayout) #self.horizontalLayout_3.addLayout(self.verticalLayout) #self.rightWidget.setLayout(self.verticalLayout) #self.splitWidget.addWidget(self.leftWidget) #self.splitWidget.addWidget(self.rightWidget) self.horizontalLayout_3.addWidget(self.leftWidget)#splitWidget) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) self.actionExpert = Qt.QAction(None) self.actionExpert.setText('Expert View') self.actionExpert.setCheckable(True) self.actionExpert.setChecked(False) Form.setWindowTitle("Alarms") self.comboLabel.setText("Sort:") #self.comboButton.setText("View") self.refreshButton.setText("Refresh/Sort List") self.refreshButton.setIcon(getThemeIcon("view-refresh")) self.newButton.setText("New") self.newButton.setIcon(getThemeIcon("window-new")) self.deleteButton.setText("Delete") self.deleteButton.setIcon(getThemeIcon("edit-clear")) self.comboLabel.show() self.refreshButton.show() self.newButton.show() self.deleteButton.show() self.comboBoxx.show() self.infoLabel0_1.show() self.infoLabel1_1.show()
def init(self): self.__sampleChangerFrame = None self.__robotMoveState = 0 self.__scanCurveX = {} self.__scanCurveY = {} self._isDrawing = False self.selectedBeamLocation = None self._sampleChanger = None self.count = 0 self.robotLayout = Qt.QVBoxLayout(self.brick_widget) self.robotSampleChangerFrameLabel = RobotSampleChangerFrameLabel( self, self.brick_widget) self.robotSampleChangerFrameLabel.setSizePolicy( Qt.QSizePolicy.Expanding, Qt.QSizePolicy.Expanding) self.robotSampleChangerFrameLabel.setScaledContents(True) self.robotSampleChangerFramePainter = Qt.QPainter() self.robotSampleChangerFramePixmap = QtGui.QPixmap() self.robotLayout.addWidget(self.robotSampleChangerFrameLabel) self.robotHBoxLayout1 = Qt.QHBoxLayout() self.robotSampleStateLabel = Qt.QLabel("State", self.brick_widget) self.robotHBoxLayout1.addWidget(self.robotSampleStateLabel) self.robotSampleChangerStateLineEdit = Qt.QLineEdit(self.brick_widget) self.robotSampleChangerStateLineEdit.setDisabled(True) self.robotHBoxLayout1.addWidget(self.robotSampleChangerStateLineEdit) self.robotSampleChangerStatusLineEdit = Qt.QLineEdit(self.brick_widget) self.robotSampleChangerStatusLineEdit.setDisabled(True) self.robotHBoxLayout1.addWidget(self.robotSampleChangerStatusLineEdit) self.robotLayout.addLayout(self.robotHBoxLayout1) self.robotHBoxLayout2 = Qt.QHBoxLayout() self.robotStorageTemperatureLabel = Qt.QLabel( "Temperature (SEU, storage)", self.brick_widget) self.robotHBoxLayout2.addWidget(self.robotStorageTemperatureLabel) self.robotSEUTemperatureLineEdit = Qt.QLineEdit(self.brick_widget) self.robotSEUTemperatureLineEdit.setDisabled(True) self.robotHBoxLayout2.addWidget(self.robotSEUTemperatureLineEdit) self.robotSEUTemperaturePushButton = Qt.QPushButton( "Set", self.brick_widget) Qt.QObject.connect(self.robotSEUTemperaturePushButton, Qt.SIGNAL("clicked()"), self.robotSEUTemperaturePushButtonClicked) self.robotHBoxLayout2.addWidget(self.robotSEUTemperaturePushButton) self.robotStorageTemperatureLineEdit = Qt.QLineEdit(self.brick_widget) self.robotStorageTemperatureLineEdit.setDisabled(True) self.robotHBoxLayout2.addWidget(self.robotStorageTemperatureLineEdit) self.robotStorageTemperaturePushButton = Qt.QPushButton( "Set", self.brick_widget) Qt.QObject.connect(self.robotStorageTemperaturePushButton, Qt.SIGNAL("clicked()"), self.robotStorageTemperaturePushButtonClicked) self.robotHBoxLayout2.addWidget(self.robotStorageTemperaturePushButton) self.robotLayout.addLayout(self.robotHBoxLayout2) self.robotHBoxLayout3 = Qt.QHBoxLayout() self.robotMoveBackwardPushButton = Qt.QPushButton( "|<<", self.brick_widget) Qt.QObject.connect(self.robotMoveBackwardPushButton, Qt.SIGNAL("pressed()"), self.robotMoveBackwardPushButtonPressed) Qt.QObject.connect(self.robotMoveBackwardPushButton, Qt.SIGNAL("released()"), self.robotMoveBackwardPushButtonReleased) self.robotHBoxLayout3.addWidget(self.robotMoveBackwardPushButton) self.robotStopPushButton = Qt.QPushButton("||", self.brick_widget) Qt.QObject.connect(self.robotStopPushButton, Qt.SIGNAL("clicked()"), self.robotStopPushButtonClicked) self.robotHBoxLayout3.addWidget(self.robotStopPushButton) #self.robotMovePushButton = Qt.QPushButton(">", self.brick_widget) #Qt.QObject.connect(self.robotMovePushButton, Qt.SIGNAL("clicked()"), self.robotMovePushButtonClicked) #self.robotHBoxLayout3.addWidget(self.robotMovePushButton) self.robotMoveForwardPushButton = Qt.QPushButton( ">>|", self.brick_widget) Qt.QObject.connect(self.robotMoveForwardPushButton, Qt.SIGNAL("pressed()"), self.robotMoveForwardPushButtonPressed) Qt.QObject.connect(self.robotMoveForwardPushButton, Qt.SIGNAL("released()"), self.robotMoveForwardPushButtonReleased) self.robotHBoxLayout3.addWidget(self.robotMoveForwardPushButton) self.robotFlowPushButton = Qt.QPushButton("Flow", self.brick_widget) Qt.QObject.connect(self.robotFlowPushButton, Qt.SIGNAL("clicked()"), self.robotFlowPushButtonClicked) self.robotHBoxLayout3.addWidget(self.robotFlowPushButton) self.robotRecuperatePushButton = Qt.QPushButton( "Recuperate", self.brick_widget) Qt.QObject.connect(self.robotRecuperatePushButton, Qt.SIGNAL("clicked()"), self.robotRecuperatePushButtonClicked) self.robotHBoxLayout3.addWidget(self.robotRecuperatePushButton) self.robotLayout.addLayout(self.robotHBoxLayout3) self.robotHBoxLayout4 = Qt.QHBoxLayout() self.robotRestartPushButton = Qt.QPushButton("Restart", self.brick_widget) self.robotRestartMenu = Qt.QMenu(self.robotRestartPushButton) self.robotRestartWithHomingAction = Qt.QAction("With homing", self.robotRestartMenu) self.robotRestartMenu.addAction(self.robotRestartWithHomingAction) self.robotRestartWithoutHomingAction = Qt.QAction( "Without homing", self.robotRestartMenu) self.robotRestartMenu.addAction(self.robotRestartWithoutHomingAction) Qt.QObject.connect(self.robotRestartWithHomingAction, Qt.SIGNAL("triggered(bool)"), self.robotRestartWithHomingActionTriggered) Qt.QObject.connect(self.robotRestartWithoutHomingAction, Qt.SIGNAL("triggered(bool)"), self.robotRestartWithoutHomingActionTriggered) self.robotRestartPushButton.setMenu(self.robotRestartMenu) self.robotHBoxLayout4.addWidget(self.robotRestartPushButton) self.robotAbortPushButton = Qt.QPushButton("Abort", self.brick_widget) Qt.QObject.connect(self.robotAbortPushButton, Qt.SIGNAL("clicked()"), self.robotAbortPushButtonClicked) self.robotHBoxLayout4.addWidget(self.robotAbortPushButton) self.robotCleanPushButton = Qt.QPushButton("Clean", self.brick_widget) Qt.QObject.connect(self.robotCleanPushButton, Qt.SIGNAL("clicked()"), self.robotCleanPushButtonClicked) self.robotHBoxLayout4.addWidget(self.robotCleanPushButton) self.robotFillPushButton = Qt.QPushButton("Fill", self.brick_widget) Qt.QObject.connect(self.robotFillPushButton, Qt.SIGNAL("clicked()"), self.robotFillPushButtonClicked) self.robotHBoxLayout4.addWidget(self.robotFillPushButton) self.robotDryPushButton = Qt.QPushButton("Dry", self.brick_widget) Qt.QObject.connect(self.robotDryPushButton, Qt.SIGNAL("clicked()"), self.robotDryPushButtonClicked) self.robotHBoxLayout4.addWidget(self.robotDryPushButton) self.robotFixLiquidPositionPushButton = Qt.QPushButton( "Fix liquid position", self.brick_widget) Qt.QObject.connect(self.robotFixLiquidPositionPushButton, Qt.SIGNAL("clicked()"), self.robotFixLiquidPositionPushButtonClicked) self.robotHBoxLayout4.addWidget(self.robotFixLiquidPositionPushButton) self.robotSnapshotPushButton = Qt.QPushButton("Snapshot", self.brick_widget) Qt.QObject.connect(self.robotSnapshotPushButton, Qt.SIGNAL("clicked()"), self.robotSnapshotPushButtonClicked) self.robotHBoxLayout4.addWidget(self.robotSnapshotPushButton) self.robotLayout.addLayout(self.robotHBoxLayout4) self.__sampleChangerDisplayFlag = False self.__sampleChangerDisplayMessage = "" self.__updateTimer = QtCore.QTimer(self.brick_widget) QtCore.QObject.connect(self.__updateTimer, QtCore.SIGNAL('timeout()'), self.updateSampleChanger)
def __init__(self, parent): self.__robotMoveState = 0 self.plateGeometry = [] self.lastWell = [1, 1, 1] Qt.QWidget.__init__(self, parent) self.vBoxLayout = Qt.QVBoxLayout() self.topHBox = Qt.QHBoxLayout() self.syringeGroup = Qt.QGroupBox("Syringe", self) self.actionGroup = Qt.QGroupBox("Actions", self) self.tempGroup = Qt.QGroupBox("Temperature", self) self.bottomBox = Qt.QHBoxLayout() self.vBoxLayout.addLayout(self.topHBox) self.vBoxLayout.addWidget(self.actionGroup) self.vBoxLayout.addLayout(self.bottomBox) # Top Line self.syringeLayout = Qt.QHBoxLayout() self.robotMoveBackwardPushButton = Qt.QPushButton("<<", self) self.robotMoveBackwardPushButton.setFixedWidth(150) self.robotMoveBackwardPushButton.setToolTip("Move liquid backward") Qt.QObject.connect(self.robotMoveBackwardPushButton, Qt.SIGNAL("pressed()"), self.robotMoveBackwardPushButtonPressed) Qt.QObject.connect(self.robotMoveBackwardPushButton, Qt.SIGNAL("released()"), self.robotMoveBackwardPushButtonReleased) self.syringeLayout.addWidget(self.robotMoveBackwardPushButton) self.robotFixLiquidPositionPushButton = Qt.QPushButton(">|<", self) self.robotFixLiquidPositionPushButton.setFixedWidth(150) self.robotFixLiquidPositionPushButton.setToolTip("Fix liquid position") Qt.QObject.connect(self.robotFixLiquidPositionPushButton, Qt.SIGNAL("clicked()"), self.robotFixLiquidPositionPushButtonClicked) self.syringeLayout.addWidget(self.robotFixLiquidPositionPushButton) self.robotMoveForwardPushButton = Qt.QPushButton(">>", self) self.robotMoveForwardPushButton.setFixedWidth(150) self.robotMoveForwardPushButton.setToolTip("Move liquid forward") Qt.QObject.connect(self.robotMoveForwardPushButton, Qt.SIGNAL("pressed()"), self.robotMoveForwardPushButtonPressed) Qt.QObject.connect(self.robotMoveForwardPushButton, Qt.SIGNAL("released()"), self.robotMoveForwardPushButtonReleased) self.syringeLayout.addWidget(self.robotMoveForwardPushButton) self.syringeGroup.setLayout(self.syringeLayout) self.topHBox.addWidget(self.syringeGroup) self.topHBox.addWidget(self.tempGroup) # Action group self.actionLayout = Qt.QHBoxLayout() self.robotFillPushButton = Qt.QPushButton("Fill", self) Qt.QObject.connect(self.robotFillPushButton, Qt.SIGNAL("clicked()"), self.robotFillPushButtonClicked) self.actionLayout.addWidget(self.robotFillPushButton) self.robotRecuperatePushButton = Qt.QPushButton("Recuperate", self) Qt.QObject.connect(self.robotRecuperatePushButton, Qt.SIGNAL("clicked()"), self.robotRecuperatePushButtonClicked) self.actionLayout.addWidget(self.robotRecuperatePushButton) self.robotCleanPushButton = Qt.QPushButton("Clean", self) Qt.QObject.connect(self.robotCleanPushButton, Qt.SIGNAL("clicked()"), self.robotCleanPushButtonClicked) self.actionLayout.addWidget(self.robotCleanPushButton) self.robotDryPushButton = Qt.QPushButton("Dry", self) Qt.QObject.connect(self.robotDryPushButton, Qt.SIGNAL("clicked()"), self.robotDryPushButtonClicked) self.actionLayout.addWidget(self.robotDryPushButton) self.robotFlowPushButton = Qt.QPushButton("Flow", self) Qt.QObject.connect(self.robotFlowPushButton, Qt.SIGNAL("clicked()"), self.robotFlowPushButtonClicked) self.actionLayout.addWidget(self.robotFlowPushButton) self.robotMixPushButton = Qt.QPushButton("Mix", self) Qt.QObject.connect(self.robotMixPushButton, Qt.SIGNAL("clicked()"), self.robotMixPushButtonClicked) self.actionLayout.addWidget(self.robotMixPushButton) self.robotTransferPushButton = Qt.QPushButton("Transfer", self) Qt.QObject.connect(self.robotTransferPushButton, Qt.SIGNAL("clicked()"), self.robotTransferPushButtonClicked) self.actionLayout.addWidget(self.robotTransferPushButton) self.robotAbortPushButton = Qt.QPushButton("Abort", self) Qt.QObject.connect(self.robotAbortPushButton, Qt.SIGNAL("clicked()"), self.robotAbortPushButtonClicked) self.robotAbortPushButton.setDisabled(True) self.robotAbortPushButton.setObjectName("abortbutton") self.robotAbortPushButton.setProperty("abortactive", "false") self.actionLayout.addWidget(self.robotAbortPushButton) self.actionGroup.setLayout(self.actionLayout) # Temperature settings self.tempLayout = Qt.QHBoxLayout() self.robotStorageTemperatureLabel = Qt.QLabel("Storage Temp.", self) self.tempLayout.addWidget(self.robotStorageTemperatureLabel) self.robotStorageTemperatureLineEdit = Qt.QLineEdit(self) self.robotStorageTemperatureLineEdit.setDisabled(True) self.robotStorageTemperatureLineEdit.setFixedWidth(80) self.tempLayout.addWidget(self.robotStorageTemperatureLineEdit) self.robotStorageTemperaturePushButton = Qt.QPushButton("Set", self) Qt.QObject.connect(self.robotStorageTemperaturePushButton, Qt.SIGNAL("clicked()"), self.robotStorageTemperaturePushButtonClicked) self.tempLayout.addWidget(self.robotStorageTemperaturePushButton) self.robotSEUTemperatureLabel = Qt.QLabel("SEU Temp.", self) self.tempLayout.addWidget(self.robotSEUTemperatureLabel) self.robotSEUTemperatureLineEdit = Qt.QLineEdit(self) self.robotSEUTemperatureLineEdit.setDisabled(True) self.robotSEUTemperatureLineEdit.setFixedWidth(80) self.tempLayout.addWidget(self.robotSEUTemperatureLineEdit) self.robotSEUTemperaturePushButton = Qt.QPushButton("Set", self) Qt.QObject.connect(self.robotSEUTemperaturePushButton, Qt.SIGNAL("clicked()"), self.robotSEUTemperaturePushButtonClicked) self.tempLayout.addWidget(self.robotSEUTemperaturePushButton) self.tempGroup.setLayout(self.tempLayout) # Bottom Line self.robotSampleStateLabel = Qt.QLabel("State: ", self) self.robotSampleStateLabel.setFixedWidth(70) self.bottomBox.addWidget(self.robotSampleStateLabel) self.robotSampleChangerStatus = Qt.QLabel() self.robotSampleChangerStatus.setObjectName("statuslabel") self.robotSampleChangerStatus.setSizePolicy(Qt.QSizePolicy.Expanding, Qt.QSizePolicy.Expanding) self.bottomBox.addWidget(self.robotSampleChangerStatus) self.robotRestartPushButton = Qt.QPushButton("Restart", self) self.robotRestartPushButton.setFixedWidth(150) self.robotRestartMenu = Qt.QMenu(self.robotRestartPushButton) self.robotRestartWithHomingAction = Qt.QAction("With homing", self.robotRestartMenu) self.robotRestartWithoutHomingAction = Qt.QAction( "Without homing", self.robotRestartMenu) self.robotRestartMenu.addAction(self.robotRestartWithHomingAction) self.robotRestartMenu.addAction(self.robotRestartWithoutHomingAction) Qt.QObject.connect(self.robotRestartWithHomingAction, Qt.SIGNAL("triggered(bool)"), self.robotRestartWithHomingActionTriggered) Qt.QObject.connect(self.robotRestartWithoutHomingAction, Qt.SIGNAL("triggered(bool)"), self.robotRestartWithoutHomingActionTriggered) self.robotRestartPushButton.setMenu(self.robotRestartMenu) self.bottomBox.addWidget(self.robotRestartPushButton) self.setStyleSheet( ' #abortbutton[abortactive="true"] {background-color: red;color: white}\ #abortbutton[abortactive="false"] {background-color: #fff;color: black}\ #statuslabel[state="running"] {background-color: #ff0;color: black}\ #statuslabel[state="standby"] {background-color: #0f0;color: black}\ #statuslabel[state="disconnected"] {background-color: #f0f;color: black}\ #statuslabel[state="alarm"] {background-color: #f0f;color: black}' ) self.setLayout(self.vBoxLayout) self.__sampleChangerDisplayFlag = False self.__sampleChangerDisplayMessage = ""
def initContextmenu(self, reset_auto=False): """Initialize the result buffer context menu """ if self.menu is None: self.menu = Qt.QMenu(self) Qt.QObject.connect(self.menu, Qt.SIGNAL("triggered()"), self.handle_menu_request) toggle_id = self.menu_table['Reset Auto Scaling'] self._reset_auto_scaling = Qt.QAction('Reset Auto Scaling', self) self._reset_auto_scaling.setData(Qt.QVariant(toggle_id)) self.menu.addAction(self._reset_auto_scaling) if reset_auto: self._reset_auto_scaling.setVisible(True) else: self._reset_auto_scaling.setVisible(False) toggle_id = self.menu_table['Adjust results buffer size'] self._adjust_results_buffer_size = Qt.QAction( 'Adjust results buffer size', self) self._adjust_results_buffer_size.setData(Qt.QVariant(toggle_id)) self.menu.addAction(self._adjust_results_buffer_size) self.connect(self._adjust_results_buffer_size, Qt.SIGNAL('triggered()'), self.handleBufferSize) if reset_auto: self._adjust_results_buffer_size.setVisible(False) else: self._adjust_results_buffer_size.setVisible(True) # option for summary plot toggle_id = self.menu_table['Display summary plot'] self._display_summary_plot = Qt.QAction('Display summary plot', self) self.menu.addAction(self._display_summary_plot) self._display_summary_plot.setVisible(False) self._display_summary_plot.setData(Qt.QVariant(toggle_id)) # options for 3D Display toggle_id = self.menu_table['X Axis'] self._x_axis = Qt.QAction('X Axis', self) self.menu.addAction(self._x_axis) self._x_axis.setVisible(False) self._x_axis.setData(Qt.QVariant(toggle_id)) self.connect(self._x_axis, Qt.SIGNAL('triggered()'), self.X_Axis_Selected) toggle_id = self.menu_table['Y Axis'] self._y_axis = Qt.QAction('Y Axis', self) self.menu.addAction(self._y_axis) self._y_axis.setVisible(False) self._y_axis.setData(Qt.QVariant(toggle_id)) self.connect(self._y_axis, Qt.SIGNAL('triggered()'), self.Y_Axis_Selected) toggle_id = self.menu_table['Z Axis'] self._z_axis = Qt.QAction('Z Axis', self) self.menu.addAction(self._z_axis) self._z_axis.setVisible(False) self._z_axis.setData(Qt.QVariant(toggle_id)) self.connect(self._z_axis, Qt.SIGNAL('triggered()'), self.Z_Axis_Selected) toggle_id = self.menu_table['Align Camera'] self._align_camera = Qt.QAction('Align Camera', self) self.menu.addAction(self._align_camera) self._align_camera.setVisible(False) self._align_camera.setData(Qt.QVariant(toggle_id)) self._align_camera.setText('Align Camera to Current Axis') self.connect(self._align_camera, Qt.SIGNAL('triggered()'), self.align_camera) toggle_id = self.menu_table['Show 2D Display'] self._show_2d_display = Qt.QAction('Show 2D Display', self) self.menu.addAction(self._show_2d_display) self._show_2d_display.setVisible(False) self._show_2d_display.setData(Qt.QVariant(toggle_id)) self.connect(self._show_2d_display, Qt.SIGNAL('triggered()'), self.request_2D_display) toggle_id = self.menu_table['Toggle ND Controller'] self._toggle_nd_controller = Qt.QAction('Toggle ND Controller', self) self.menu.addAction(self._toggle_nd_controller) self._toggle_nd_controller.setVisible(False) self._toggle_nd_controller.setData(Qt.QVariant(toggle_id)) self._toggle_nd_controller.setText('Hide ND Controller') self.connect(self._toggle_nd_controller, Qt.SIGNAL('triggered()'), self.toggle_ND_controller) toggle_id = self.menu_table['Toggle VTK Scale'] self._toggle_vtk_scale = Qt.QAction('Toggle VTK Scale', self) self.menu.addAction(self._toggle_vtk_scale) self._toggle_vtk_scale.setVisible(False) self._toggle_vtk_scale.setData(Qt.QVariant(toggle_id)) self._toggle_vtk_scale.setText('Apply Scaling to VTK Display') self.connect(self._toggle_vtk_scale, Qt.SIGNAL('triggered()'), self.toggle_scale) toggle_id = self.menu_table['Update'] self._update = Qt.QAction('Update', self) self.menu.addAction(self._update) self._update.setVisible(False) self._update.setData(Qt.QVariant(toggle_id)) self.connect(self._update, Qt.SIGNAL('triggered()'), self.requestUpdate) toggle_id = self.menu_table['Print to Postscript file'] self._print_to_postscript_file = Qt.QAction( 'Print to Postscript file', self) self.menu.addAction(self._print_to_postscript_file) self._print_to_postscript_file.setVisible(False) self._print_to_postscript_file.setData(Qt.QVariant(toggle_id)) self.connect(self._print_to_postscript_file, Qt.SIGNAL('triggered()'), self.request_postscript) toggle_id = self.menu_table['Save Display in PNG Format'] self._save_display_in_png_format = Qt.QAction( 'Save Display in PNG Format', self) self.menu.addAction(self._save_display_in_png_format) self._save_display_in_png_format.setVisible(False) self._save_display_in_png_format.setData(Qt.QVariant(toggle_id)) self.connect(self._save_display_in_png_format, Qt.SIGNAL('triggered()'), self.request_PNG_file)