def __init__(self, orientation='horizontal', track=False): super(Slider, self).__init__() if orientation == 'horizontal': w = QtGui.QSlider(QtCore.Qt.Horizontal) else: w = QtGui.QSlider(QtCore.Qt.Vertical) # this controls whether the callbacks are made *as the user # moves the slider* or afterwards w.setTracking(track) w.setTickPosition(QtGui.QSlider.TicksBelow) self.widget = w w.valueChanged.connect(self._cb_redirect) self.enable_callback('value-changed')
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)