def build_menubar(fig, actions): root = fig.canvas.manager.window # File menu items saveact = QtGui.QAction('Save', root) saveact.triggered.connect(actions['save']) exitact = QtGui.QAction('Exit', root) exitact.triggered.connect(actions['exit']) # Help menu items helpact = QtGui.QAction('Help', root) helpact.triggered.connect(actions['help']) aboutact = QtGui.QAction('About', root) aboutact.triggered.connect(actions['about']) # Menubar creation mb = root.menuBar() # The File menubar item filemenu = mb.addMenu('File') filemenu.addAction(saveact) filemenu.addAction(exitact) # The Help menubar item helpmenu = mb.addMenu('Help') helpmenu.addAction(helpact) helpmenu.addAction(aboutact) return mb
def generateLegendMenu(self): self.menuLegend = QtGui.QMenu(self.menubar) self.menuLegend.setTitle('Legend') self.actionGenerateLegend = QtGui.QAction(self) self.actionGenerateLegend.setText('Generate Draggable Legend') self.menuLegend.addAction(self.actionGenerateLegend) self.menubar.addAction(self.menuLegend.menuAction()) self.connect(self.actionGenerateLegend, QtCore.SIGNAL('triggered()'), self.generateLegend)
def __init__(self, windowTitle='Window', x=0, y=0, legend=True, parent=None): super(Window, self).__init__(parent) # set UI style -- options: u'Windows', u'Motif', u'CDE', u'Plastique', u'Cleanlooks', u'Macintosh (aqua)' # QtGui.QApplication.setStyle(QtGui.QStyleFactory.create(u'Plastique')) # layout self.setAutoFillBackground(True) self.centralwidget = QtGui.QWidget(self) self.verticalLayout = QtGui.QVBoxLayout(self.centralwidget) self.verticalLayout.setMargin(0) self.setCentralWidget(self.centralwidget) self.setBackgroundColor(QtCore.Qt.white) # create menu bar self.menubar = QtGui.QMenuBar(self) self.menubar.setGeometry(QtCore.QRect(0, 0, 340, 22)) # create menus self.menuFile = QtGui.QMenu(self.menubar) self.menuFile.setTitle("File") self.menuConfigurePlot = QtGui.QMenu(self.menubar) self.menuConfigurePlot.setTitle("Configure Plot") # create actions self.actionSaveAs = QtGui.QAction(self) self.actionSaveAs.setText("Save As...") self.actionConfigureSubplots = QtGui.QAction(self) self.actionConfigureSubplots.setText('Configure Subplots') self.actionConfigureAxis = QtGui.QAction(self) self.actionConfigureAxis.setText('Configure Axis and Curve') # add actions to menu self.menuFile.addAction(self.actionSaveAs) self.menubar.addAction(self.menuFile.menuAction()) self.menuConfigurePlot.addAction(self.actionConfigureSubplots) self.menuConfigurePlot.addAction(self.actionConfigureAxis) self.menubar.addAction(self.menuConfigurePlot.menuAction()) # enable menu bar self.setMenuBar(self.menubar) QtCore.QMetaObject.connectSlotsByName(self) # get arguments self.windowTitle = windowTitle # moves menu bar into application -- mac only windows sux self.menubar.setNativeMenuBar(False) # set window title self.setWindowTitle(self.windowTitle) self.initCanvas() self.toolbar = CustomToolbar(self.canvas, self) self.verticalLayout.addWidget(self.toolbar) self.setWindowPosition(x, y) # bind file menu actions self.connect(self.actionSaveAs, QtCore.SIGNAL('triggered()'), self.toolbar.save_figure) # bind configure menu actions self.connect(self.actionConfigureSubplots, QtCore.SIGNAL('triggered()'), self.toolbar.configure_subplots) self.connect(self.actionConfigureAxis, QtCore.SIGNAL('triggered()'), self.toolbar.edit_parameters) if legend: self.generateLegendMenu() # create instance of Plotter class self.plotter = plotter.Plotter()