def __init__(self, parent, model, result): QWidget.__init__(self, parent) self.setLayout(QVBoxLayout()) scrollArea = QScrollArea(self) self.layout().addWidget(scrollArea) scrollArea.setWidgetResizable(True) viewport = QToolBox() scrollArea.setWidget(viewport) self.computationTimeGroup = ComputationTimeTable(result) self.preemptionsGroup = InformationTable( result, 'preemption_count', ['min', 'avg', 'max', 'sum']) self.migrationsGroup = InformationTable( result, 'migration_count', ['min', 'avg', 'max', 'sum']) self.taskMigrationsGroup = TaskMigrationTable(result) self.responseTimeGroup = InformationTable( result, 'response_time', ['min', 'avg', 'max', 'std dev'], map_=lambda x: x / float(model.cycles_per_ms)) viewport.addItem(self.computationTimeGroup, "Computation time:") viewport.addItem(self.preemptionsGroup, "Preemptions:") viewport.addItem(self.migrationsGroup, "Migrations:") viewport.addItem(self.taskMigrationsGroup, "Task migrations:") viewport.addItem(self.responseTimeGroup, "Response time:")
def __init__(self, dockwidget): super(QuickInsert, self).__init__(dockwidget) self._dockwidget = weakref.ref(dockwidget) # filled in by ButtonGroup subclasses self.actionDict = {} layout = QVBoxLayout() self.setLayout(layout) layout.setContentsMargins(0, 0, 0, 0) self.helpButton = QToolButton( icon=icons.get("help-contents"), autoRaise=True, clicked=lambda: userguide.show("quickinsert")) self.directionLabel = QLabel() self.direction = QComboBox() self.direction.addItems(['', '', '']) self.direction.setItemIcon(0, icons.get("go-up")) self.direction.setItemIcon(2, icons.get("go-down")) self.direction.setCurrentIndex(1) hor = QHBoxLayout() hor.setContentsMargins(0, 0, 0, 0) hor.addWidget(self.helpButton) hor.addWidget(self.directionLabel) hor.addWidget(self.direction) layout.addLayout(hor) self.toolbox = QToolBox(self) widgets.toolboxwheeler.ToolBoxWheeler(self.toolbox) layout.addWidget(self.toolbox) for cls in ( articulations.Articulations, dynamics.Dynamics, spanners.Spanners, barlines.BarLines, ): widget = cls(self) self.toolbox.addItem(widget, widget.icon(), '') app.translateUI(self) userguide.openWhatsThis(self) # restore remembered current page name = QSettings().value("quickinsert/current_tool", "", type("")) if name: for i in range(self.toolbox.count()): if name == self.toolbox.widget(i).__class__.__name__.lower(): self.toolbox.setCurrentIndex(i) break self.toolbox.currentChanged.connect(self.slotCurrentChanged)
def setup_simulation_tab(self): simulWidget = QWidget() simulLayout = QGridLayout() simulToolBox = QToolBox() simulToolBox.addItem(self.setup_analformula_tb(), "Analytical formula") simulToolBox.addItem(self.setup_geogrparams_tb(), "Geographic parameters") simulToolBox.addItem(self.setup_output_tb(), "Output") simulLayout.addWidget(simulToolBox, 0, 0, 1, 2) simulWidget.setLayout(simulLayout) return simulWidget
def __init__(self, app_admin, workspace, parent): super(QDockWidget, self).__init__(parent) self._workspace = workspace self.app_admin = app_admin tb = QToolBox() tb.setFrameShape(QFrame.NoFrame) tb.layout().setContentsMargins(0, 0, 0, 0) tb.layout().setSpacing(1) tb.setObjectName('toolbox') tb.setMouseTracking(True) # hack for removing the dock title bar self.setTitleBarWidget(QWidget()) self.setWidget(tb) self.setFeatures(QDockWidget.NoDockWidgetFeatures) self.app_admin.sections_changed_signal.connect(self.update_sections) self.update_sections()
def __init__(self, template, character, typ, isCheckable=False, parent=None): super(CategoryWidget, self).__init__(parent) self.__storage = template self.__character = character self._layout = QVBoxLayout() self.setLayout(self._layout) self._toolBox = QToolBox() ## Die Auflistung der Widgets soll auch unter Windows einen transparenten Hintergrund haben. self._toolBox.setObjectName("transparentWidget") ## \todo Sollte nicht vom Betriebssystem, sondern vom verwendeten Style abhängen. if os.name == "nt": self._toolBox.setStyleSheet( "QScrollArea{ background: transparent; } QWidget#transparentWidget { background: transparent; }" ) self._layout.addWidget(self._toolBox) self._typ = typ categories = self.__storage.categories(self._typ) # Diese Liste speichert den Index der ToolBox-Seite bei den unterschiedlichen Kategorien # { # Index: [Widget, Eigenschaft1, Eigenschaft2, ...] # } self._toolBoxPageList = {} for item in categories: # Für jede Kategorie wird ein eigener Abschnitt erzeugt. widgetCategory = QWidget() ## Dank des Namens übernimmt dieses Widget den Stil des Eltern-Widgets. widgetCategory.setObjectName("transparentWidget") layoutCategory = QVBoxLayout() widgetCategory.setLayout(layoutCategory) ## In dieser Liste sammle ich die Widgets, damit sie später bei Bedarf in die ToolBox eingefügt werden können. self._toolBoxPageList[item] = [widgetCategory] __list = list(self.__character.traits[self._typ][item].items()) __list.sort() for trait in __list: # Anlegen des Widgets, das diese Eigenschaft repräsentiert. traitWidget = None if isCheckable: traitWidget = CheckTrait(trait[1], self) else: traitWidget = CharaTrait(trait[1], self) traitWidget.setSpecialtiesHidden(True) if type(trait) != StandardTrait or not trait[1].custom: traitWidget.setDescriptionHidden(True) self._toolBoxPageList[item].append(trait[1]) layoutCategory.addWidget(traitWidget) self.__character.traitVisibleReasonChanged.connect( traitWidget.hideOrShowTrait) # Stretch einfügen, damit die Eigenschaften besser angeordnet sind. layoutCategory.addStretch() #Debug.debug(self._toolBoxPageList) self.__character.speciesChanged.connect(self.hideOrShowToolPage) self.__character.breedChanged.connect(self.hideOrShowToolPage) self.__character.factionChanged.connect(self.hideOrShowToolPage)
def __init__(self, template, character, parent=None): super(MeritWidget, self).__init__(template, character, parent) self.__layout = QVBoxLayout() self.setLayout(self.__layout) self.__toolBox = QToolBox() ## Die Auflistung der Merits soll auch unter Windows einen transparenten Hintergrund haben. self.__toolBox.setObjectName("transparentWidget") ## \todo Sollte nicht vom Betriebssystem, sondern vom verwendeten Style abhängen. if os.name == "nt": self.__toolBox.setStyleSheet( "QScrollArea{ background: transparent; } QWidget#transparentWidget { background: transparent; }" ) self.__layout.addWidget(self.__toolBox) self.__typ = "Merit" categories = [] categories.extend(Config.CATEGORIES_MERITS) categories.extend(self._storage.categories(self.__typ)) # Duplikate werden entfernt. Dadurch wird die in der Config-Klasse vorgegebene Reihenfolge eingehalten und zusätzliche, dort nicht erwähnte Kategorien werden hinterher angehängt. categories = ListTools.uniqify_ordered(categories) # Diese Liste speichert den Index der ToolBox-Seite bei den unterschiedlichen Kategorien self.__categoryIndex = {} # Merits werden in einer Spalte heruntergeschrieben, aber mit vertikalem Platz dazwischen. for item in categories: # Für jede Kategorie wird ein eigener Abschnitt erzeugt. widgetMeritCategory = QWidget() ## Dank des Namens übernimmt dieses Widget den Stil des Eltern-Widgets. widgetMeritCategory.setObjectName("transparentWidget") layoutMeritCategory = QVBoxLayout() widgetMeritCategory.setLayout(layoutMeritCategory) self.__toolBox.addItem(widgetMeritCategory, item) self.__categoryIndex[item] = self.__toolBox.count() - 1 #Debug.debug(self.__categoryIndex) __list = list(self._character.traits[self.__typ][item].items()) __list.sort() for merit in __list: #Debug.debug(merit) # Anlegen des Widgets, das diese Eigenschaft repräsentiert. traitWidget = CharaTrait(merit[1], self) traitWidget.setSpecialtiesHidden(True) if not merit[1].custom: traitWidget.setDescriptionHidden(True) # Bei Merits sind nur bestimmte Werte erlaubt. #Debug.debug(self._storage.traits[self.__typ][item][merit[0]]) traitWidget.setPossibleValues(self._storage.traits[ self.__typ][item][merit[1].identifier]["values"]) # Es werden nur Eigenschaften der richtigen Alters- und Zeit-Kategorie angezeigt. self.hideReasonChanged.connect(traitWidget.hideOrShowTrait) layoutMeritCategory.addWidget(traitWidget) merit[1].valueChanged.connect(self.countMerits) #self._character.speciesChanged.connect(traitWidget.hideOrShowTrait_species) # Stretch einfügen, damit die Eigenschaften besser angeordnet sind. layoutMeritCategory.addStretch() self.setMinimumWidth(Config.TRAIT_WIDTH_MIN) self._character.speciesChanged.connect(self.countMerits)