def __init__(self, package, parent=None): QSplitter.__init__(self, parent) self.setWindowTitle(_("Tests - %s module") % package.__name__) self.setWindowIcon(get_icon("%s.svg" % package.__name__, "guidata.svg")) test_package_name = "%s.tests" % package.__name__ _temp = __import__(test_package_name) test_package = sys.modules[test_package_name] tests = get_tests(test_package) listwidget = QListWidget(self) listwidget.addItems([osp.basename(test.filename) for test in tests]) self.properties = TestPropertiesWidget(self) self.addWidget(listwidget) self.addWidget(self.properties) self.properties.run_button.clicked.connect( lambda: tests[listwidget.currentRow()].run()) self.properties.quit_button.clicked.connect(self.close) listwidget.currentRowChanged.connect( lambda row: self.properties.set_item(tests[row])) listwidget.itemActivated.connect( lambda: tests[listwidget.currentRow()].run()) listwidget.setCurrentRow(0) QShortcut(QKeySequence("Escape"), self, self.close) self.setSizes([150, 1]) self.setStretchFactor(1, 1) self.resize(QSize(950, 600)) self.properties.set_item(tests[0])
def __init__(self, parent, toolbar): QSplitter.__init__(self, parent) self.setContentsMargins(10, 10, 10, 10) self.setOrientation(Qt.Vertical) imagelistwithproperties = ImageListWithProperties(self) self.addWidget(imagelistwithproperties) self.imagelist = imagelistwithproperties.imagelist self.imagelist.currentRowChanged.connect(self.current_item_changed) self.imagelist.itemSelectionChanged.connect(self.selection_changed) self.properties = imagelistwithproperties.properties self.properties.SIG_APPLY_BUTTON_CLICKED.connect(self.properties_changed) self.imagewidget = ImageWidget(self) self.imagewidget.plot.SIG_LUT_CHANGED.connect(self.lut_range_changed) self.item = None # image item self.imagewidget.add_toolbar(toolbar, "default") self.imagewidget.register_all_image_tools() self.addWidget(self.imagewidget) self.images = [] # List of ImageParam instances self.lut_ranges = [] # List of LUT ranges self.setStretchFactor(0, 0) self.setStretchFactor(1, 1) self.setHandleWidth(10) self.setSizes([1, 2])
def __init__(self, parent): QSplitter.__init__(self, parent) self.imagelist = QListWidget(self) self.addWidget(self.imagelist) self.properties = DataSetEditGroupBox(_("Properties"), ImageParam) self.properties.setEnabled(False) self.addWidget(self.properties)
def __init__(self, parent=None, title=None, xlabel=None, ylabel=None, xunit=None, yunit=None, section="plot", show_itemlist=False, gridparam=None, curve_antialiasing=None, **kwargs): if PYQT5: super(BaseCurveWidget, self).__init__(parent, **kwargs) self.setOrientation(Qt.Horizontal) else: QSplitter.__init__(self, Qt.Horizontal, parent) self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.plot = CurvePlot( parent=self, title=title, xlabel=xlabel, ylabel=ylabel, xunit=xunit, yunit=yunit, section=section, gridparam=gridparam, ) if curve_antialiasing is not None: self.plot.set_antialiasing(curve_antialiasing) self.addWidget(self.plot) self.itemlist = PlotItemList(self) self.itemlist.setVisible(show_itemlist) self.addWidget(self.itemlist) configure_plot_splitter(self)
def __init__(self, parent, adjacency): QSplitter.__init__(self, parent, orientation=Qt.Vertical) self.plugin = parent.plugin self.adjacency = adjacency treepane = QWidget(parent=self) # Create main widget self.model = MxAnalyzerModel( adjacency=adjacency, root=None, parent=self # parent must be self, # because self.model access self.tab ) # from .modeltest import ModelTest # self.modeltest = ModelTest(self.model, self) self.tree = MxAnalyzerTree(treepane, self.model) self.shellwidget = None # Set by parent button_group = QButtonGroup(parent=self) self.object_radio = object_radio = QRadioButton("Object") self.expr_radio = expr_radio = QRadioButton("Expression") button_group.addButton(object_radio) button_group.addButton(expr_radio) object_radio.setChecked(True) object_radio.toggled.connect(self.toggleObject) # Layout of the top area in the plugin widget expr_layout = QHBoxLayout() expr_layout.setContentsMargins(0, 0, 0, 0) # Add Object textbox expr_layout.addSpacing(10) txt = _("Object") if sys.platform == 'darwin': obj_label = QLabel(" " + txt) else: obj_label = QLabel(txt) expr_layout.addWidget(obj_label) if spyder.version_info < (4,): font = parent.plugin.get_plugin_font() else: font = parent.plugin.get_font() self.objbox = QLabel(parent=self) self.argbox = MxPyExprLineEdit(self, font=font) self.attrdict = None objbox_layout = QHBoxLayout() objbox_layout.addWidget(self.objbox) objbox_layout.addWidget(self.argbox) objbox_layout.setStretch(0, 3) # 3:1 objbox_layout.setStretch(1, 1) self.exprobjbox = MxPyExprLineEdit(treepane, font=font) expr_layout.addWidget(self.exprobjbox) expr_layout.addSpacing(10) # Add Object textbox txt = _("Args") if sys.platform == 'darwin': arg_label = QLabel(" " + txt) else: arg_label = QLabel(txt) expr_layout.addWidget(arg_label) self.exprargbox = MxPyExprLineEdit(treepane, font=font) expr_layout.addWidget(self.exprargbox) # expr_layout.addSpacing(5) top_layout = QGridLayout() top_layout.addWidget(object_radio, 0, 0) top_layout.addWidget(expr_radio, 1, 0) top_layout.addLayout(objbox_layout, 0, 1) objbox_layout.setContentsMargins(0, 0, 0, 5) top_layout.addLayout(expr_layout, 1, 1) top_layout.setContentsMargins(5, 5, 5, 5) # Main layout of this widget layout = create_plugin_layout(top_layout, self.tree) treepane.setLayout(layout) self.status = QLabel() layout.addWidget(self.status) self.codepane = AnalyzerCodePane(parent=self)
def __init__(self, parent=None, title="", xlabel=("", ""), ylabel=("", ""), zlabel=None, xunit=("", ""), yunit=("", ""), zunit=None, yreverse=True, colormap="jet", aspect_ratio=1.0, lock_aspect_ratio=True, show_contrast=False, show_itemlist=False, show_xsection=False, show_ysection=False, xsection_pos="top", ysection_pos="right", gridparam=None, curve_antialiasing=None, **kwargs): if PYQT5: super(BaseImageWidget, self).__init__(parent, **kwargs) self.setOrientation(Qt.Vertical) else: QSplitter.__init__(self, Qt.Vertical, parent) self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.sub_splitter = QSplitter(Qt.Horizontal, self) self.plot = ImagePlot( parent=self, title=title, xlabel=xlabel, ylabel=ylabel, zlabel=zlabel, xunit=xunit, yunit=yunit, zunit=zunit, yreverse=yreverse, aspect_ratio=aspect_ratio, lock_aspect_ratio=lock_aspect_ratio, gridparam=gridparam, ) if curve_antialiasing is not None: self.plot.set_antialiasing(curve_antialiasing) from guiqwt.cross_section import YCrossSection self.ycsw = YCrossSection(self, position=ysection_pos, xsection_pos=xsection_pos) self.ycsw.setVisible(show_ysection) from guiqwt.cross_section import XCrossSection self.xcsw = XCrossSection(self) self.xcsw.setVisible(show_xsection) self.xcsw.SIG_VISIBILITY_CHANGED.connect(self.xcsw_is_visible) self.xcsw_splitter = QSplitter(Qt.Vertical, self) if xsection_pos == "top": self.xcsw_splitter.addWidget(self.xcsw) self.xcsw_splitter.addWidget(self.plot) else: self.xcsw_splitter.addWidget(self.plot) self.xcsw_splitter.addWidget(self.xcsw) self.xcsw_splitter.splitterMoved.connect( lambda pos, index: self.adjust_ycsw_height()) self.ycsw_splitter = QSplitter(Qt.Horizontal, self) if ysection_pos == "left": self.ycsw_splitter.addWidget(self.ycsw) self.ycsw_splitter.addWidget(self.xcsw_splitter) else: self.ycsw_splitter.addWidget(self.xcsw_splitter) self.ycsw_splitter.addWidget(self.ycsw) configure_plot_splitter(self.xcsw_splitter, decreasing_size=xsection_pos == "bottom") configure_plot_splitter(self.ycsw_splitter, decreasing_size=ysection_pos == "right") self.sub_splitter.addWidget(self.ycsw_splitter) self.itemlist = PlotItemList(self) self.itemlist.setVisible(show_itemlist) self.sub_splitter.addWidget(self.itemlist) # Contrast adjustment (Levels histogram) from guiqwt.histogram import ContrastAdjustment self.contrast = ContrastAdjustment(self) self.contrast.setVisible(show_contrast) self.addWidget(self.contrast) configure_plot_splitter(self) configure_plot_splitter(self.sub_splitter)