def build_gui(self, container): if not has_webkit: self.browser = QtGui.QLabel("Please install the python-webkit package to enable this plugin") else: self.browser = QWebView() sw = QtGui.QScrollArea() sw.setWidgetResizable(True) #sw.set_border_width(2) sw.setWidget(self.browser) cw = container.get_widget() cw.layout().addWidget(sw, stretch=1) sw.show() self.entry = QtGui.QLineEdit() cw.layout().addWidget(self.entry, stretch=0) self.entry.returnPressed.connect(self.browse_cb) btns = QtHelp.HBox() layout = btns.layout() layout.setSpacing(3) btn = QtGui.QPushButton("Close") btn.clicked.connect(self.close) layout.addWidget(btn, stretch=0, alignment=QtCore.Qt.AlignLeft) cw.layout().addWidget(btns, stretch=0, alignment=QtCore.Qt.AlignLeft) if has_webkit: helpfile = os.path.abspath(os.path.join(packageHome, "doc", "help.html")) helpurl = "file://%s" % (helpfile) self.browse(helpurl)
def build_gui(self, container): rvbox = container self.msgFont = QtGui.QFont("Fixed", 14) tw = QtGui.QTextEdit() #tw.setLineWrapMode(??) ## tw.set_left_margin(4) ## tw.set_right_margin(4) tw.setReadOnly(True) ## tw.set_left_margin(4) ## tw.set_right_margin(4) tw.setCurrentFont(self.msgFont) self.tw = tw self.history = [] self.histmax = 10 sw = QtGui.QScrollArea() sw.setWidgetResizable(True) #sw.set_border_width(2) sw.setWidget(self.tw) rvbox.addWidget(sw, stretch=1) sw.show() self.entry = QtGui.QLineEdit() rvbox.addWidget(self.entry, stretch=0) self.entry.returnPressed.connect(self.command_cb)
def build_gui(self, container): rvbox = container if not has_webkit: self.browser = QtGui.QLabel("Please install the python-webkit package to enable this plugin") else: self.browser = webkit.QWebView() sw = QtGui.QScrollArea() sw.setWidgetResizable(True) #sw.set_border_width(2) sw.setWidget(self.browser) rvbox.addWidget(sw, stretch=1) sw.show() self.entry = QtGui.QLineEdit() rvbox.addWidget(self.entry, stretch=0) self.entry.returnPressed.connect(self.browse_cb) if has_webkit: helpfile = os.path.abspath(os.path.join(moduleHome, "..", "..", "doc", "manual", "quickref.html")) helpurl = "file://%s" % (helpfile) self.entry.setText(helpurl) self.browse(helpurl)
def build_gui(self, container): sw = QtGui.QScrollArea() twidget = QtHelp.VBox() sp = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.Fixed) twidget.setSizePolicy(sp) vbox1 = twidget.layout() vbox1.setContentsMargins(4, 4, 4, 4) vbox1.setSpacing(2) sw.setWidgetResizable(True) sw.setWidget(twidget) msgFont = QtGui.QFont("Sans", 14) tw = QtGui.QLabel() tw.setFont(msgFont) tw.setWordWrap(True) self.tw = tw fr = QtHelp.Frame("Instructions") fr.layout().addWidget(tw, stretch=1, alignment=QtCore.Qt.AlignTop) vbox1.addWidget(fr, stretch=0, alignment=QtCore.Qt.AlignTop) fr = QtHelp.Frame("HDU") captions = [("Num HDUs", 'label'), ("Choose HDU", 'spinbutton')] w, b = QtHelp.build_info(captions) self.w.update(b) self.w.numhdu = b.num_hdus self.w.hdu = b.choose_hdu self.w.hdu.valueChanged.connect(self.set_hdu_cb) fr.layout().addWidget(w, stretch=1, alignment=QtCore.Qt.AlignLeft) vbox1.addWidget(fr, stretch=0, alignment=QtCore.Qt.AlignTop) fr = QtHelp.Frame("NAXIS") self.stack = QtHelp.StackedWidget() self.stack.addWidget(QtGui.QLabel('')) fr.layout().addWidget(self.stack, stretch=1, alignment=QtCore.Qt.AlignLeft) vbox1.addWidget(fr, stretch=0, alignment=QtCore.Qt.AlignTop) btns = QtHelp.HBox() layout = btns.layout() layout.setSpacing(3) #btns.set_child_size(15, -1) btn = QtGui.QPushButton("Close") btn.clicked.connect(self.close) layout.addWidget(btn, stretch=0, alignment=QtCore.Qt.AlignLeft) vbox1.addWidget(btns, stretch=0, alignment=QtCore.Qt.AlignLeft) container.addWidget(sw, stretch=1)
def build_gui(self, container): sw = QtGui.QScrollArea() twidget = QtHelp.VBox() sp = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.Fixed) twidget.setSizePolicy(sp) vbox1 = twidget.layout() vbox1.setContentsMargins(4, 4, 4, 4) vbox1.setSpacing(2) sw.setWidgetResizable(True) sw.setWidget(twidget) msgFont = QtGui.QFont("Sans", 14) tw = QtGui.QLabel() tw.setFont(msgFont) tw.setWordWrap(True) self.tw = tw fr = QtHelp.Frame("Instructions") fr.layout().addWidget(tw, stretch=1, alignment=QtCore.Qt.AlignTop) vbox1.addWidget(fr, stretch=0, alignment=QtCore.Qt.AlignTop) fr = QtHelp.Frame("Ruler") captions = (('Units', 'combobox'), ) w, b = QtHelp.build_info(captions) self.w = b combobox = b.units for name in self.unittypes: combobox.addItem(name) index = self.unittypes.index(self.units) combobox.setCurrentIndex(index) combobox.activated.connect(self.set_units) fr.layout().addWidget(w, stretch=1, alignment=QtCore.Qt.AlignLeft) vbox1.addWidget(fr, stretch=0, alignment=QtCore.Qt.AlignTop) btns = QtHelp.HBox() layout = btns.layout() layout.setSpacing(3) #btns.set_child_size(15, -1) btn = QtGui.QPushButton("Close") btn.clicked.connect(self.close) layout.addWidget(btn, stretch=0, alignment=QtCore.Qt.AlignLeft) vbox1.addWidget(btns, stretch=0, alignment=QtCore.Qt.AlignLeft) container.addWidget(sw, stretch=1)
def build_gui(self, container): #self.msgFont = QtGui.QFont("Fixed", 10) tw = QtGui.QPlainTextEdit() tw.setReadOnly(True) #tw.setCurrentFont(self.msgFont) tw.setLineWrapMode(QtGui.QPlainTextEdit.NoWrap) tw.setMaximumBlockCount(self.histlimit) self.tw = tw sw = QtGui.QScrollArea() sw.setWidgetResizable(True) sw.setWidget(self.tw) container.addWidget(sw, stretch=1) sw.show() hbox = QtHelp.HBox() lbl = QtGui.QLabel('Level:') hbox.addWidget(lbl, stretch=0) combobox = QtHelp.ComboBox() for (name, level) in self.levels: combobox.addItem(name) combobox.setCurrentIndex(1) combobox.activated.connect(self.set_loglevel_cb) hbox.addWidget(combobox, stretch=0) lbl = QtGui.QLabel('History:') hbox.addWidget(lbl, stretch=0) spinbox = QtGui.QSpinBox() spinbox.setRange(100, self.histmax) spinbox.setSingleStep(10) spinbox.valueChanged.connect(self.set_history_cb) hbox.addWidget(spinbox, stretch=0) btn = QtGui.QPushButton("Clear") btn.clicked.connect(self.clear) hbox.addWidget(btn, stretch=0) container.addWidget(hbox, stretch=0)
def build_gui(self, container): self.msgFont = self.fv.getFont("fixedFont", 12) self.msgList = QtGui.QWidget() vbox = QtGui.QGridLayout() vbox.setContentsMargins(0, 0, 0, 0) vbox.setSpacing(0) self.msgList.setLayout(vbox) sw = QtGui.QScrollArea() sw.setWidgetResizable(True) #sw.set_border_width(2) sw.setWidget(self.msgList) cw = container.get_widget() cw.addWidget(sw, stretch=1) hbox = QtHelp.HBox() btn = QtGui.QPushButton("Remove All") btn.clicked.connect(self.remove_all) hbox.addWidget(btn, stretch=0) cw.addWidget(hbox, stretch=0) self.widgetList = []
def build_gui(self, container, future=None): vbox1 = QtHelp.VBox() msgFont = self.fv.getFont("sansFont", 14) tw = QtGui.QLabel() tw.setFont(msgFont) tw.setWordWrap(True) self.tw = tw fr = QtHelp.Frame("Instructions") fr.addWidget(tw, stretch=1, alignment=QtCore.Qt.AlignTop) vbox1.addWidget(fr, stretch=0, alignment=QtCore.Qt.AlignTop) nb = QtHelp.TabWidget() nb.setTabPosition(QtGui.QTabWidget.South) nb.setUsesScrollButtons(True) self.w.nb = nb #vbox1.addWidget(nb, stretch=1, alignment=QtCore.Qt.AlignTop) vbox1.addWidget(nb, stretch=1) vbox0 = QtHelp.VBox() hbox = QtHelp.HBox() hbox.setSpacing(4) vbox0.addWidget(hbox, stretch=1, alignment=QtCore.Qt.AlignTop) vbox = QtHelp.VBox() fr = QtHelp.Frame(" Image Server ") fr.addWidget(vbox, stretch=1, alignment=QtCore.Qt.AlignTop) hbox.addWidget(fr, stretch=0, alignment=QtCore.Qt.AlignLeft) captions = (('Server', 'xlabel'), ('@Server', 'combobox'), ('Use DSS channel', 'checkbutton'), ('Get Image', 'button')) w, b = QtHelp.build_info(captions) self.w.update(b) self.w.get_image.clicked.connect(self.getimage_cb) self.w.use_dss_channel.setChecked(self.use_dss_channel) self.w.use_dss_channel.stateChanged.connect(self.use_dss_channel_cb) vbox.addWidget(w, stretch=0, alignment=QtCore.Qt.AlignTop) self.w.img_params = QtHelp.StackedWidget() vbox.addWidget(self.w.img_params, stretch=1, alignment=QtCore.Qt.AlignTop) combobox = self.w.server index = 0 self.image_server_options = self.fv.imgsrv.getServerNames(kind='image') for name in self.image_server_options: combobox.addItem(name) index += 1 index = 0 combobox.setCurrentIndex(index) combobox.activated.connect(self.setup_params_image) if len(self.image_server_options) > 0: self.setup_params_image(index, redo=False) vbox = QtHelp.VBox() fr = QtHelp.Frame(" Catalog Server ") fr.addWidget(vbox, stretch=1, alignment=QtCore.Qt.AlignTop) hbox.addWidget(fr, stretch=0, alignment=QtCore.Qt.AlignLeft) captions = (('Server', 'xlabel'), ('@Server', 'combobox'), ('Limit stars to area', 'checkbutton'), ('Search', 'button')) w, self.w2 = QtHelp.build_info(captions) self.w2.search.clicked.connect(self.getcatalog_cb) self.w2.limit_stars_to_area.setChecked(self.limit_stars_to_area) self.w2.limit_stars_to_area.stateChanged.connect(self.limit_area_cb) vbox.addWidget(w, stretch=0, alignment=QtCore.Qt.AlignTop) self.w2.cat_params = QtHelp.StackedWidget() vbox.addWidget(self.w2.cat_params, stretch=1, alignment=QtCore.Qt.AlignTop) combobox = self.w2.server index = 0 self.catalog_server_options = self.fv.imgsrv.getServerNames(kind='catalog') for name in self.catalog_server_options: combobox.addItem(name) index += 1 index = 0 combobox.setCurrentIndex(index) combobox.activated.connect(self.setup_params_catalog) if len(self.catalog_server_options) > 0: self.setup_params_catalog(index, redo=False) btns = QtHelp.HBox() btns.setSpacing(5) btn = QtGui.QRadioButton("Rectangle") if self.drawtype == 'rectangle': btn.setChecked(True) btn.toggled.connect(lambda tf: self.set_drawtype_cb(tf, 'rectangle')) btns.addWidget(btn, stretch=0, alignment=QtCore.Qt.AlignLeft) btn = QtGui.QRadioButton("Circle") if self.drawtype == 'circle': btn.setChecked(True) btn.toggled.connect(lambda tf: self.set_drawtype_cb(tf, 'circle')) btns.addWidget(btn, stretch=0, alignment=QtCore.Qt.AlignLeft) btn = QtGui.QPushButton("Entire image") btn.clicked.connect(self.setfromimage) btns.addWidget(btn, stretch=0, alignment=QtCore.Qt.AlignLeft) vbox0.addWidget(btns, stretch=0, alignment=QtCore.Qt.AlignTop) self.w.params = vbox0 sw = QtGui.QScrollArea() sw.setWidgetResizable(True) sw.setWidget(vbox0) nb.addTab(sw, "Params") vbox = QtHelp.VBox() self.table = CatalogListing(self.logger, vbox) hbox = QtHelp.HBox() adj = QtGui.QScrollBar(QtCore.Qt.Horizontal) adj.setRange(0, 1000) adj.setSingleStep(1) adj.setPageStep(10) #adj.setMaximum(1000) adj.setValue(0) #adj.resize(200, -1) adj.setTracking(True) adj.setToolTip("Choose subset of stars plotted") self.w.plotgrp = adj adj.valueChanged.connect(self.plot_pct_cb) hbox.addWidget(adj, stretch=1) sb = QtGui.QSpinBox() sb.setRange(10, self.plot_max) sb.setValue(self.plot_limit) sb.setSingleStep(10) adj.setPageStep(100) sb.setWrapping(False) self.w.plotnum = sb sb.setToolTip("Adjust size of subset of stars plotted") sb.valueChanged.connect(self.plot_limit_cb) hbox.addWidget(sb, stretch=0) vbox.addWidget(hbox, stretch=0) self.w.listing = vbox nb.addTab(vbox, "Listing") btns = QtHelp.HBox() btns.setSpacing(3) #btns.set_child_size(15, -1) self.w.buttons = btns btn = QtGui.QPushButton("Close") btn.clicked.connect(self.close) btns.addWidget(btn, stretch=0, alignment=QtCore.Qt.AlignLeft) if future: btn = QtGui.QPushButton('Ok') btn.clicked.connect(lambda w: self.ok()) btns.addWidget(btn, stretch=0, alignment=QtCore.Qt.AlignLeft) btn = QtGui.QPushButton('Cancel') btn.clicked.connect(lambda w: self.cancel()) btns.addWidget(btn, stretch=0, alignment=QtCore.Qt.AlignLeft) vbox1.addWidget(btns, stretch=0) cw = container.get_widget() cw.addWidget(vbox1, stretch=1)
def _create_info_window(self): sw = QtGui.QScrollArea() widget = QtGui.QWidget() vbox = QtGui.QVBoxLayout() vbox.setContentsMargins(2, 2, 2, 2) widget.setLayout(vbox) captions = ( ('Name', 'label'), ('Object', 'label'), ('X', 'label'), ('Y', 'label'), ('Value', 'label'), ('RA', 'label'), ('DEC', 'label'), ('Equinox', 'label'), ('Dimensions', 'label'), #('Slices', 'label', 'MultiDim', 'button'), ('Min', 'label'), ('Max', 'label'), ('Zoom', 'label'), ('Cut Low', 'xlabel', '@Cut Low', 'entry'), ('Cut High', 'xlabel', '@Cut High', 'entry'), ('Auto Levels', 'button', 'Cut Levels', 'button'), ('Cut New', 'label'), ('Zoom New', 'label'), ('Preferences', 'button'), ) w, b = QtHelp.build_info(captions) b.cut_levels.setToolTip("Set cut levels manually") b.auto_levels.setToolTip("Set cut levels by algorithm") b.cut_low.setToolTip("Set low cut level (press Enter)") b.cut_high.setToolTip("Set high cut level (press Enter)") b.preferences.setToolTip("Set preferences for this channel") #b.multidim.setToolTip("View other HDUs or slices") vbox.addWidget(w, stretch=0) # Convenience navigation buttons btns = QtGui.QWidget() layout = QtGui.QHBoxLayout() layout.setSpacing(3) btns.setLayout(layout) #btns.set_layout(gtk.BUTTONBOX_CENTER) #btns.set_child_size(15, -1) bw = Bunch.Bunch() for tup in ( #("Load", 'button', 'fits_open_48', "Open an image file"), ("Prev", 'button', 'prev_48', "Go to previous image"), ("Next", 'button', 'next_48', "Go to next image"), ("Zoom In", 'button', 'zoom_in_48', "Zoom in"), ("Zoom Out", 'button', 'zoom_out_48', "Zoom out"), ("Zoom Fit", 'button', 'zoom_fit_48', "Zoom to fit window size"), ("Zoom 1:1", 'button', 'zoom_100_48', "Zoom to 100% (1:1)"), #("Quit", 'button', 'exit', "Quit the program"), ): btn = self.fv.make_button(*tup) name = tup[0] if tup[3]: btn.setToolTip(tup[3]) bw[QtHelp._name_mangle(name, pfx='btn_')] = btn layout.addWidget(btn, stretch=0) #self.w.btn_load.connect("clicked", lambda w: self.gui_load_file()) bw.btn_prev.clicked.connect(self.fv.prev_img) bw.btn_next.clicked.connect(self.fv.next_img) bw.btn_zoom_in.clicked.connect(self.fv.zoom_in) bw.btn_zoom_out.clicked.connect(self.fv.zoom_out) bw.btn_zoom_fit.clicked.connect(self.fv.zoom_fit) bw.btn_zoom_1_1.clicked.connect(self.fv.zoom_1_to_1) vbox.addWidget(btns, stretch=0) #widget.show() sw.setWidget(widget) return sw, b
def __init__(self): super(ScrollArea, self).__init__() self.widget = QtGui.QScrollArea() self.widget.setWidgetResizable(True)
def build_gui(self, container): sw = QtGui.QScrollArea() twidget = QtHelp.VBox() sp = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.Fixed) twidget.setSizePolicy(sp) vbox1 = twidget.layout() vbox1.setContentsMargins(4, 4, 4, 4) vbox1.setSpacing(2) sw.setWidgetResizable(True) sw.setWidget(twidget) msgFont = QtGui.QFont("Sans", 14) tw = QtGui.QLabel() tw.setFont(msgFont) tw.setWordWrap(True) self.tw = tw fr = QtHelp.Frame("Instructions") fr.layout().addWidget(tw, stretch=1, alignment=QtCore.Qt.AlignTop) vbox1.addWidget(fr, stretch=0, alignment=QtCore.Qt.AlignTop) fr = QtHelp.Frame("Drawing") captions = (('Draw type', 'combobox'), ('Draw color', 'combobox'), ('Clear canvas', 'button')) w, b = QtHelp.build_info(captions) self.w = b combobox = b.draw_type options = [] index = 0 for name in self.drawtypes: options.append(name) combobox.addItem(name) index += 1 index = self.drawtypes.index(default_drawtype) combobox.setCurrentIndex(index) combobox.activated.connect(self.set_drawparams) self.w.draw_color = b.draw_color combobox = b.draw_color options = [] index = 0 self.drawcolors = draw_colors for name in self.drawcolors: options.append(name) combobox.addItem(name) index += 1 index = self.drawcolors.index(default_drawcolor) combobox.setCurrentIndex(index) combobox.activated.connect(self.set_drawparams) b.clear_canvas.clicked.connect(self.clear_canvas) fr.layout().addWidget(w, stretch=1, alignment=QtCore.Qt.AlignLeft) vbox1.addWidget(fr, stretch=0, alignment=QtCore.Qt.AlignTop) btns = QtHelp.HBox() layout = btns.layout() layout.setSpacing(3) btn = QtGui.QPushButton("Close") btn.clicked.connect(self.close) layout.addWidget(btn, stretch=0, alignment=QtCore.Qt.AlignLeft) vbox1.addWidget(btns, stretch=0, alignment=QtCore.Qt.AlignLeft) container.addWidget(sw, stretch=1)
def build_gui(self, container): vpaned = QtGui.QSplitter() vpaned.setOrientation(QtCore.Qt.Vertical) width, height = 200, 200 zi = FitsImageCanvasQt.FitsImageCanvas(logger=self.logger) zi.enable_autozoom('off') zi.enable_autocuts('off') zi.enable_zoom(False) #zi.set_scale_limits(0.001, 1000.0) zi.zoom_to(self.default_zoom, redraw=False) zi.add_callback('zoom-set', self.zoomset) #zi.add_callback('motion', self.showxy) zi.set_bg(0.4, 0.4, 0.4) zi.show_pan_mark(True, redraw=False) self.zoomimage = zi iw = zi.get_widget() #iw.setSizePolicy(QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding)) iw.resize(width, height) vpaned.addWidget(iw) widget = QtGui.QWidget() vbox = QtGui.QVBoxLayout() widget.setLayout(vbox) vbox.addWidget(QtGui.QLabel("Zoom Radius:"), stretch=0) adj = QtGui.QSlider(QtCore.Qt.Horizontal) adj.setMinimum(1) adj.setMaximum(100) adj.setValue(self.zoom_radius) adj.resize(200, -1) adj.setTracking(True) self.w_radius = adj adj.valueChanged.connect(self.set_radius_cb) vbox.addWidget(adj, stretch=0) vbox.addWidget(QtGui.QLabel("Zoom Amount:"), stretch=0) adj = QtGui.QSlider(QtCore.Qt.Horizontal) adj.setMinimum(-20) adj.setMaximum(30) adj.setValue(self.zoom_amount) adj.resize(200, -1) adj.setTracking(True) self.w_amount = adj adj.valueChanged.connect(self.set_amount_cb) vbox.addWidget(adj, stretch=0) captions = ( ('Zoom', 'label'), ("Relative Zoom", 'checkbutton'), ("Lag Time", 'spinbutton'), ('Defaults', 'button'), ) w, b = QtHelp.build_info(captions) b.zoom.setText(self.fv.scale2text(zi.get_scale())) self.wzoom = b b.relative_zoom.setChecked(not self.t_abszoom) b.relative_zoom.stateChanged.connect(self.set_absrel_cb) b.defaults.clicked.connect(self.set_defaults) b.lag_time.setRange(0, 20) b.lag_time.setSingleStep(1) b.lag_time.setWrapping(True) b.lag_time.setValue(self.lagtime) b.lag_time.valueChanged.connect(self.setlag_cb) vbox.addWidget(w, stretch=0) sw = QtGui.QScrollArea() sw.setWidgetResizable(False) sw.setWidget(widget) #widget.setSizePolicy(QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed)) vpaned.addWidget(sw) sw.show() container.addWidget(vpaned, stretch=1)
def build_gui(self, container): sw = QtGui.QScrollArea() twidget = QtHelp.VBox() sp = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.Fixed) twidget.setSizePolicy(sp) vbox = twidget.layout() vbox.setContentsMargins(4, 4, 4, 4) vbox.setSpacing(2) sw.setWidgetResizable(True) sw.setWidget(twidget) # COLOR MAPPING OPTIONS fr = QtHelp.Frame("Colors") captions = (('Colormap', 'combobox', 'Intensity', 'combobox'), ('Algorithm', 'combobox', 'Table Size', 'entry'), ('Color Defaults', 'button')) w, b = QtHelp.build_info(captions) self.w.cmap_choice = b.colormap self.w.imap_choice = b.intensity self.w.calg_choice = b.algorithm self.w.table_size = b.table_size b.color_defaults.clicked.connect(self.set_default_maps) b.colormap.setToolTip("Choose a color map for this image") b.intensity.setToolTip("Choose an intensity map for this image") b.algorithm.setToolTip("Choose a color mapping algorithm") b.table_size.setToolTip("Set size of the color mapping table") b.color_defaults.setToolTip("Restore default color and intensity maps") fr.layout().addWidget(w, stretch=1, alignment=QtCore.Qt.AlignLeft) vbox.addWidget(fr, stretch=0, alignment=QtCore.Qt.AlignTop) combobox = b.colormap options = [] index = 0 for name in self.cmap_names: options.append(name) combobox.addItem(name) index += 1 cmap_name = self.t_.get('color_map', "ramp") try: index = self.cmap_names.index(cmap_name) except Exception: index = self.cmap_names.index('ramp') combobox.setCurrentIndex(index) combobox.activated.connect(self.set_cmap_cb) combobox = b.intensity options = [] index = 0 for name in self.imap_names: options.append(name) combobox.addItem(name) index += 1 imap_name = self.t_.get('intensity_map', "ramp") try: index = self.imap_names.index(imap_name) except Exception: index = self.imap_names.index('ramp') combobox.setCurrentIndex(index) combobox.activated.connect(self.set_imap_cb) combobox = b.algorithm options = [] index = 0 for name in self.calg_names: options.append(name) combobox.addItem(name) index += 1 index = self.calg_names.index(self.t_.get('color_algorithm', "linear")) combobox.setCurrentIndex(index) combobox.activated.connect(self.set_calg_cb) entry = b.table_size entry.setText(str(self.t_.get('color_hashsize', 65535))) entry.returnPressed.connect(lambda: self.set_tablesize_cb(entry)) # ZOOM OPTIONS fr = QtHelp.Frame("Zoom") captions = (('Zoom Alg', 'combobox', 'Zoom Rate', 'spinfloat'), ('Stretch XY', 'combobox', 'Stretch Factor', 'spinfloat'), ('Scale X', 'entry', 'Scale Y', 'entry'), ('Scale Min', 'spinfloat', 'Scale Max', 'spinfloat'), ('Zoom Defaults', 'button')) w, b = QtHelp.build_info(captions) self.w.update(b) index = 0 for name in self.zoomalg_names: b.zoom_alg.addItem(name.capitalize()) index += 1 zoomalg = self.t_.get('zoom_algorithm', "step") index = self.zoomalg_names.index(zoomalg) b.zoom_alg.setCurrentIndex(index) b.zoom_alg.setToolTip("Choose Zoom algorithm") b.zoom_alg.activated.connect(self.set_zoomalg_cb) index = 0 for name in ('X', 'Y'): b.stretch_xy.addItem(name) index += 1 b.stretch_xy.setCurrentIndex(0) b.stretch_xy.setToolTip("Stretch pixels in X or Y") b.stretch_xy.activated.connect(lambda v: self.set_stretch_cb()) b.stretch_factor.setRange(1.0, 10.0) b.stretch_factor.setValue(1.0) b.stretch_factor.setSingleStep(0.10) b.stretch_factor.setDecimals(8) b.stretch_factor.valueChanged.connect(lambda v: self.set_stretch_cb()) b.stretch_factor.setToolTip( "Length of pixel relative to 1 on other side") b.stretch_factor.setEnabled(zoomalg != 'step') zoomrate = self.t_.get('zoom_rate', math.sqrt(2.0)) b.zoom_rate.setRange(1.1, 3.0) b.zoom_rate.setValue(zoomrate) b.zoom_rate.setSingleStep(0.1) b.zoom_rate.setDecimals(8) b.zoom_rate.setEnabled(zoomalg != 'step') b.zoom_rate.setToolTip("Step rate of increase/decrease per zoom level") b.zoom_rate.valueChanged.connect(self.set_zoomrate_cb) b.zoom_defaults.clicked.connect(self.set_zoom_defaults_cb) scale_x, scale_y = self.fitsimage.get_scale_xy() b.scale_x.setToolTip("Set the scale in X axis") b.scale_x.setText(str(scale_x)) b.scale_x.returnPressed.connect(self.set_scale_cb) b.scale_y.setToolTip("Set the scale in Y axis") b.scale_y.setText(str(scale_y)) b.scale_y.returnPressed.connect(self.set_scale_cb) scale_min, scale_max = self.t_['scale_min'], self.t_['scale_max'] b.scale_min.setRange(0.00001, 1.0) b.scale_min.setValue(scale_min) b.scale_min.setDecimals(8) b.scale_min.setSingleStep(1.0) b.scale_min.valueChanged.connect(lambda w: self.set_scale_limit_cb()) b.scale_min.setToolTip("Set the minimum allowed scale in any axis") b.scale_max.setRange(1.0, 10000.0) b.scale_max.setValue(scale_max) b.scale_max.setSingleStep(1.0) b.scale_max.setDecimals(8) b.scale_max.valueChanged.connect(lambda w: self.set_scale_limit_cb()) b.scale_min.setToolTip("Set the maximum allowed scale in any axis") fr.layout().addWidget(w, stretch=1, alignment=QtCore.Qt.AlignLeft) vbox.addWidget(fr, stretch=0, alignment=QtCore.Qt.AlignTop) # PAN OPTIONS fr = QtHelp.Frame("Panning") captions = (('Pan X', 'entry'), ('Pan Y', 'entry', 'Center Image', 'button'), ('Reverse Pan', 'checkbutton', 'Mark Center', 'checkbutton')) w, b = QtHelp.build_info(captions) self.w.update(b) pan_x, pan_y = self.fitsimage.get_pan() b.pan_x.setToolTip("Set the pan position in X axis") b.pan_x.setText(str(pan_x + 0.5)) b.pan_x.returnPressed.connect(self.set_pan_cb) b.pan_y.setToolTip("Set the pan position in Y axis") b.pan_y.setText(str(pan_y + 0.5)) b.pan_y.returnPressed.connect(self.set_pan_cb) b.center_image.setToolTip( "Set the pan position to center of the image") b.center_image.clicked.connect(self.center_image_cb) b.reverse_pan.setToolTip("Reverse the pan direction") b.reverse_pan.stateChanged.connect(self.set_misc_cb) b.mark_center.setToolTip("Mark the center (pan locator)") b.mark_center.stateChanged.connect(self.set_misc_cb) fr.layout().addWidget(w, stretch=1, alignment=QtCore.Qt.AlignLeft) vbox.addWidget(fr, stretch=0, alignment=QtCore.Qt.AlignTop) # TRANSFORM OPTIONS fr = QtHelp.Frame("Transform") captions = ( ('Flip X', 'checkbutton', 'Flip Y', 'checkbutton', 'Swap XY', 'checkbutton'), ('Rotate', 'spinfloat'), ('Restore', 'button'), ) w, b = QtHelp.build_info(captions) self.w.update(b) for name in ('flip_x', 'flip_y', 'swap_xy'): btn = b[name] btn.setChecked(self.t_.get(name, False)) btn.stateChanged.connect(lambda w: self.set_transforms_cb()) b.flip_x.setToolTip("Flip the image around the X axis") b.flip_y.setToolTip("Flip the image around the Y axis") b.swap_xy.setToolTip("Swap the X and Y axes in the image") b.rotate.setToolTip("Rotate the image around the pan position") b.restore.setToolTip("Clear any transforms and center image") b.restore.clicked.connect(self.restore_cb) b.rotate.setRange(0.00, 359.99999999) b.rotate.setValue(0.00) b.rotate.setSingleStep(10.0) b.rotate.setDecimals(8) b.rotate.valueChanged.connect(lambda w: self.rotate_cb()) fr.layout().addWidget(w, stretch=1, alignment=QtCore.Qt.AlignLeft) vbox.addWidget(fr, stretch=0, alignment=QtCore.Qt.AlignTop) # AUTOCUTS OPTIONS fr = QtHelp.Frame("Auto Cuts") captions = (('Auto Method', 'combobox'), ('Hist Pct', 'spinfloat')) w, b = QtHelp.build_info(captions) self.w.update(b) b.auto_method.setToolTip("Choose algorithm for auto levels") b.hist_pct.setToolTip( "Percentage of image to save for Histogram algorithm") # Setup auto cuts method choice combobox = b.auto_method index = 0 method = self.t_.get('autocut_method', "histogram") for name in self.autocut_methods: combobox.addItem(name) index += 1 index = self.autocut_methods.index(method) combobox.setCurrentIndex(index) combobox.activated.connect(lambda w: self.set_autocut_params()) b.hist_pct.setRange(0.90, 1.0) b.hist_pct.setValue(0.995) b.hist_pct.setSingleStep(0.001) b.hist_pct.setDecimals(5) b.hist_pct.valueChanged.connect(lambda w: self.set_autocut_params()) b.hist_pct.setEnabled(method == 'histogram') fr.layout().addWidget(w, stretch=1, alignment=QtCore.Qt.AlignLeft) vbox.addWidget(fr, stretch=0, alignment=QtCore.Qt.AlignTop) fr = QtHelp.Frame("New Images") captions = ( ('Cut New', 'combobox', 'Zoom New', 'combobox'), ('Center New', 'checkbutton', 'Follow New', 'checkbutton'), ('Raise New', 'checkbutton', 'Create thumbnail', 'checkbutton'), ) w, b = QtHelp.build_info(captions) self.w.update(b) combobox = b.cut_new index = 0 for name in self.autocut_options: combobox.addItem(name) index += 1 option = self.t_.get('autocuts', "off") index = self.autocut_options.index(option) combobox.setCurrentIndex(index) combobox.activated.connect(self.set_autocuts_cb) b.cut_new.setToolTip("Automatically set cut levels for new images") combobox = b.zoom_new index = 0 for name in self.autozoom_options: combobox.addItem(name) index += 1 option = self.t_.get('autozoom', "off") index = self.autozoom_options.index(option) combobox.setCurrentIndex(index) combobox.activated.connect(self.set_autozoom_cb) b.zoom_new.setToolTip("Automatically fit new images to window") b.center_new.setToolTip("Automatically center new images") b.follow_new.setToolTip("View new images as they arrive") b.raise_new.setToolTip("Raise and focus tab for new images") b.create_thumbnail.setToolTip("Create thumbnail for new images") self.w.center_new.setChecked(True) self.w.center_new.stateChanged.connect(lambda w: self.set_chprefs_cb()) self.w.follow_new.setChecked(True) self.w.follow_new.stateChanged.connect(lambda w: self.set_chprefs_cb()) self.w.raise_new.setChecked(True) self.w.raise_new.stateChanged.connect(lambda w: self.set_chprefs_cb()) self.w.create_thumbnail.setChecked(True) self.w.create_thumbnail.stateChanged.connect( lambda w: self.set_chprefs_cb()) fr.layout().addWidget(w, stretch=1, alignment=QtCore.Qt.AlignLeft) vbox.addWidget(fr, stretch=0, alignment=QtCore.Qt.AlignTop) btns = QtHelp.HBox() layout = btns.layout() layout.setSpacing(3) #layout.set_child_size(15, -1) btn = QtGui.QPushButton("Save Settings") btn.clicked.connect(self.save_preferences) layout.addWidget(btn, stretch=0, alignment=QtCore.Qt.AlignLeft) btn = QtGui.QPushButton("Close") btn.clicked.connect(self.close) layout.addWidget(btn, stretch=0, alignment=QtCore.Qt.AlignLeft) vbox.addWidget(btns, stretch=0, alignment=QtCore.Qt.AlignLeft) #container.addWidget(sw, stretch=1, alignment=QtCore.Qt.AlignTop) container.addWidget(sw, stretch=1) self.gui_up = True