示例#1
0
    def add_taskbar(self, bnch):
        lblname = bnch.lblname
        lbl = QtGui.QLabel(lblname)
        lbl.setAlignment(QtCore.Qt.AlignHCenter)
        lbl.setToolTip("Right click for menu")
        lbl.setSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
        lbl.setFrameStyle(QtGui.QFrame.Box | QtGui.QFrame.Raised)
        self.hbox.addWidget(lbl, stretch=0, alignment=QtCore.Qt.AlignLeft)

        lbl.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)

        lname = bnch.pInfo.name.lower()
        menu = QtGui.QMenu()
        item = QtGui.QAction("Focus", menu)
        item.triggered.connect(lambda: self.set_focus(lname))
        menu.addAction(item)
        item = QtGui.QAction("Unfocus", menu)
        item.triggered.connect(lambda: self.clear_focus(lname))
        menu.addAction(item)
        item = QtGui.QAction("Stop", menu)
        item.triggered.connect(lambda: self.deactivate(lname))
        menu.addAction(item)

        def on_context_menu(point):
            menu.exec_(lbl.mapToGlobal(point))

        lbl.customContextMenuRequested.connect(on_context_menu)
        # better than making a whole new subclass just to get a label to
        # respond to a mouse click
        lbl.mousePressEvent = lambda event: self.set_focus_cb(event, lname)

        bnch.setvals(widget=lbl, label=lbl, menu=menu)
示例#2
0
    def __init__(self, logger):
        super(FitsViewer, self).__init__()
        self.logger = logger

        menubar = self.menuBar()

        # create a File pulldown menu, and add it to the menu bar
        filemenu = menubar.addMenu("File")

        item = QtGui.QAction("Open File", menubar)
        item.triggered.connect(self.open_file)
        filemenu.addAction(item)

        sep = QtGui.QAction(menubar)
        sep.setSeparator(True)
        filemenu.addAction(sep)

        item = QtGui.QAction("Quit", menubar)
        item.triggered.connect(self.close)
        filemenu.addAction(item)

        # Add matplotlib color maps to our built in ones
        cmap.add_matplotlib_cmaps()
        self.cmaps = cmap.get_names()
        self.imaps = imap.get_names()

        wd, ht = 500, 500

        # Create a Ginga widget
        fi = ImageViewCanvas(logger, render='widget')
        fi.enable_autocuts('on')
        fi.set_autocut_params('zscale')
        fi.enable_autozoom('on')
        fi.enable_draw(False)
        fi.set_callback('drag-drop', self.drop_file_cb)
        fi.set_callback('cursor-changed', self.cursor_cb)
        fi.set_bg(0.2, 0.2, 0.2)
        fi.ui_set_active(True)
        self.fitsimage = fi

        fi.show_color_bar(True)

        # enable various key and mouse controlled actions
        bd = fi.get_bindings()
        bd.enable_all(True)

        self.cp_tag = 'compass'

        # pack widget into layout
        gingaw = fi.get_widget()
        gingaw.resize(wd, ht)

        vbox1 = QtGui.QWidget()
        layout = QtGui.QVBoxLayout()
        layout.addWidget(gingaw, stretch=1)

        self.cm = cmap.get_cmap('gray')
        self.im = imap.get_imap('ramp')

        # color map selection widget
        wcmap = QtGui.QComboBox()
        for name in self.cmaps:
            wcmap.addItem(name)
        index = self.cmaps.index('gray')
        wcmap.setCurrentIndex(index)
        wcmap.activated.connect(self.set_cmap_cb)
        self.wcmap = wcmap

        # intensity map selection widget
        wimap = QtGui.QComboBox()
        for name in self.imaps:
            wimap.addItem(name)
        index = self.imaps.index('ramp')
        wimap.setCurrentIndex(index)
        wimap.activated.connect(self.set_cmap_cb)
        self.wimap = wimap

        #wopen = QtGui.QPushButton("Open File")
        #wopen.clicked.connect(self.open_file)

        # add buttons to layout
        hbox = QtGui.QHBoxLayout()
        hbox.setContentsMargins(QtCore.QMargins(4, 2, 4, 2))
        hbox.addStretch(1)
        for w in (wcmap, wimap):
            hbox.addWidget(w, stretch=0)

        hw = QtGui.QWidget()
        hw.setLayout(hbox)
        layout.addWidget(hw, stretch=0)
        vbox1.setLayout(layout)

        # Create a matplotlib Figure
        #self.fig = matplotlib.figure.Figure(figsize=(wd, ht))
        self.fig = matplotlib.figure.Figure()
        self.canvas = FigureCanvas(self.fig)

        vbox2 = QtGui.QWidget()
        layout = QtGui.QVBoxLayout()
        layout.addWidget(self.canvas, stretch=1)

        # Add matplotlib buttons
        hbox = QtGui.QHBoxLayout()
        hbox.setContentsMargins(QtCore.QMargins(4, 2, 4, 2))

        wgetimg = QtGui.QPushButton("Get Data")
        wgetimg.clicked.connect(self.get_image)
        wgetrgb = QtGui.QPushButton("Get RGB")
        wgetrgb.clicked.connect(self.get_rgb_image)
        #wquit = QtGui.QPushButton("Quit")
        #wquit.clicked.connect(self.close)

        hbox.addStretch(1)
        for w in (wgetimg, wgetrgb):
            hbox.addWidget(w, stretch=0)

        hw = QtGui.QWidget()
        hw.setLayout(hbox)
        layout.addWidget(hw, stretch=0)
        vbox2.setLayout(layout)

        vbox = QtGui.QVBoxLayout()
        vbox.setContentsMargins(QtCore.QMargins(2, 2, 2, 2))
        vbox.setSpacing(1)

        w = QtGui.QWidget()
        layout = QtGui.QHBoxLayout()
        layout.addWidget(vbox1, stretch=1.0)
        layout.addWidget(vbox2, stretch=1.0)
        w.setLayout(layout)

        vbox.addWidget(w, stretch=1)

        self.readout = QtGui.QLabel("")
        vbox.addWidget(self.readout,
                       stretch=0,
                       alignment=QtCore.Qt.AlignCenter)

        vw = QtGui.QWidget()
        vw.setLayout(vbox)
        self.setCentralWidget(vw)
示例#3
0
 def add_operation(self, title):
     opmenu = self.w.operation
     item = QtGui.QAction(title, opmenu)
     item.triggered.connect(lambda: self.start_operation_cb(title))
     opmenu.addAction(item)
     self.operations.append(title)
示例#4
0
    def add_menus(self):

        menubar = QtGui.QMenuBar()
        self.w.mframe.addWidget(menubar, stretch=0)

        # create a File pulldown menu, and add it to the menu bar
        filemenu = menubar.addMenu("File")

        item = QtGui.QAction("Load Image", menubar)
        item.triggered.connect(self.gui_load_file)
        filemenu.addAction(item)

        item = QtGui.QAction("Save image as PNG", menubar)
        item.triggered.connect(
            lambda: self.save_file('/tmp/fitsimage.png', 'png'))
        filemenu.addAction(item)

        sep = QtGui.QAction(menubar)
        sep.setSeparator(True)
        filemenu.addAction(sep)

        item = QtGui.QAction("Quit", menubar)
        item.triggered.connect(self.windowClose)
        filemenu.addAction(item)

        # create a Channel pulldown menu, and add it to the menu bar
        chmenu = menubar.addMenu("Channel")

        item = QtGui.QAction("Add Channel", menubar)
        item.triggered.connect(self.gui_add_channel)
        chmenu.addAction(item)

        item = QtGui.QAction("Delete Channel", menubar)
        item.triggered.connect(self.gui_delete_channel)
        chmenu.addAction(item)

        # create a Window pulldown menu, and add it to the menu bar
        winmenu = menubar.addMenu("Window")

        item = QtGui.QAction("New Workspace", menubar)
        item.triggered.connect(self.gui_add_ws)
        winmenu.addAction(item)

        # # create a Option pulldown menu, and add it to the menu bar
        # optionmenu = menubar.addMenu("Option")

        # # create a Workspace pulldown menu, and add it to the menu bar
        # wsmenu = menubar.addMenu("Workspace")

        # item = QtGui.QAction("Panes as Tabs", menubar)
        # item.triggered.connect(self.tabstoggle_cb)
        # item.setCheckable(True)
        # # TODO: check the state of the workspace first
        # item.setChecked(True)
        # wsmenu.addAction(item)

        # item = QtGui.QAction("Tile Panes", menubar)
        # item.triggered.connect(self.tile_panes_cb)
        # wsmenu.addAction(item)

        # item = QtGui.QAction("Cascade Panes", menubar)
        # item.triggered.connect(self.cascade_panes_cb)
        # wsmenu.addAction(item)

        # create a Help pulldown menu, and add it to the menu bar
        helpmenu = menubar.addMenu("Help")

        item = QtGui.QAction("About", menubar)
        item.triggered.connect(self.banner)
        helpmenu.addAction(item)
示例#5
0
 def add_plugin_menu(self, name):
     item = QtGui.QAction("Start %s" % (name), self.w.menubar)
     item.triggered.connect(lambda: self.start_global_plugin(name))
     self.w.menu_plug.addAction(item)
示例#6
0
    def add_menus(self, holder):

        menubar = QtGui.QMenuBar()

        # NOTE: Special hack for Mac OS X, otherwise the menus
        # do not get added to the global OS X menu
        macos_ver = platform.mac_ver()[0]
        if len(macos_ver) > 0:
            self.w['top'].layout().addWidget(menubar, stretch=0)
        else:
            holder.layout().addWidget(menubar, stretch=1)

        # create a File pulldown menu, and add it to the menu bar
        filemenu = menubar.addMenu("File")

        item = QtGui.QAction("Load Image", menubar)
        item.triggered.connect(self.gui_load_file)
        filemenu.addAction(item)

        sep = QtGui.QAction(menubar)
        sep.setSeparator(True)
        filemenu.addAction(sep)

        item = QtGui.QAction("Quit", menubar)
        item.triggered.connect(self.windowClose)
        filemenu.addAction(item)

        # create a Channel pulldown menu, and add it to the menu bar
        chmenu = menubar.addMenu("Channel")

        item = QtGui.QAction("Add Channel", menubar)
        item.triggered.connect(self.gui_add_channel)
        chmenu.addAction(item)

        item = QtGui.QAction("Add Channels", menubar)
        item.triggered.connect(self.gui_add_channels)
        chmenu.addAction(item)

        item = QtGui.QAction("Delete Channel", menubar)
        item.triggered.connect(self.gui_delete_channel)
        chmenu.addAction(item)

        # create a Window pulldown menu, and add it to the menu bar
        winmenu = menubar.addMenu("Workspace")

        item = QtGui.QAction("Add Workspace", menubar)
        item.triggered.connect(self.gui_add_ws)
        winmenu.addAction(item)

        # # create a Option pulldown menu, and add it to the menu bar
        # optionmenu = menubar.addMenu("Option")

        ## # create a Workspace pulldown menu, and add it to the menu bar
        ## wsmenu = menubar.addMenu("Workspace")

        ## item = QtGui.QAction("Panes as Tabs", menubar)
        ## item.triggered.connect(self.tabstoggle_cb)
        ## item.setCheckable(True)
        ## # TODO: check the state of the workspace first
        ## item.setChecked(True)
        ## wsmenu.addAction(item)

        ## item = QtGui.QAction("Tile Panes", menubar)
        ## item.triggered.connect(self.tile_panes_cb)
        ## wsmenu.addAction(item)

        ## item = QtGui.QAction("Cascade Panes", menubar)
        ## item.triggered.connect(self.cascade_panes_cb)
        ## wsmenu.addAction(item)

        # create a Plugins pulldown menu, and add it to the menu bar
        plugmenu = menubar.addMenu("Plugins")
        self.w.menu_plug = plugmenu

        # create a Help pulldown menu, and add it to the menu bar
        helpmenu = menubar.addMenu("Help")

        item = QtGui.QAction("About", menubar)
        item.triggered.connect(lambda: self.banner(raiseTab=True))
        helpmenu.addAction(item)

        item = QtGui.QAction("Documentation", menubar)
        item.triggered.connect(lambda: self.help())
        helpmenu.addAction(item)

        return menubar