def setNodeState(self, running_nodes, stopped_nodes, error_nodes): ''' Sets the state of this capability. @param running_nodes: a list with running nodes. @type running_nodes: C{[str]} @param stopped_nodes: a list with not running nodes. @type stopped_nodes: C{[str]} @param error_nodes: a list with nodes having a problem. @type error_nodes: C{[str]} ''' self.setAutoFillBackground(True) self.setBackgroundRole(QtGui.QPalette.Base) palette = QtGui.QPalette() if error_nodes: brush = QtGui.QBrush(QtGui.QColor(255, 100, 0)) elif running_nodes and stopped_nodes: brush = QtGui.QBrush(QtGui.QColor(140, 185, 255)) #30, 50, 255 elif running_nodes: self.on_button.setFlat(True) self.off_button.setFlat(False) brush = QtGui.QBrush(QtGui.QColor(59, 223, 18)) # 59, 223, 18 else: brush = QtGui.QBrush(QtGui.QColor(255, 255, 255)) self.on_button.setFlat(False) self.off_button.setFlat(True) palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush) brush.setStyle(QtCore.Qt.SolidPattern) palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush) self.setPalette(palette)
def paintEvent(self, event): super(ColorButton, self).paintEvent(event) padding = 5 rect = event.rect() painter = QtGui.QPainter(self) painter.setBrush(QtGui.QBrush(self.color)) painter.setPen(QtGui.QColor("#CECECE")) rect.adjust( padding, padding, -1-padding, -1-padding) painter.drawRect(rect)
def __init__(self, parent=None): QtGui.QSyntaxHighlighter.__init__(self, parent) self.rules = [] self.commentStart = QtCore.QRegExp("<!--") self.commentEnd = QtCore.QRegExp("-->") self.default_format = QtGui.QTextCharFormat() self.default_format.setForeground(QtGui.QColor(24, 24, 24)) self.mark_background = QtGui.QBrush(QtGui.QColor(251, 247, 222)) self.commentFormat = QtGui.QTextCharFormat() f = QtGui.QTextCharFormat() r = QtCore.QRegExp() r.setMinimal(True) f.setFontWeight(QtGui.QFont.Normal) f.setForeground(QtCore.Qt.darkBlue) # create patterns for TAG tagList = ["\\b%s\\b" % t for t in self.LAUNCH_CHILDS.keys()] for tag in tagList: r.setPattern(tag) self.rules.append((QtCore.QRegExp(r), QtGui.QTextCharFormat(f))) # create patterns for ATTRIBUTES f.setForeground(QtCore.Qt.darkGreen) attrList = set([ "\\b%s" % attr for v in self.LAUNCH_ATTR.values() for attr in v.keys() ]) for attr in attrList: r.setPattern(attr) self.rules.append((QtCore.QRegExp(r), QtGui.QTextCharFormat(f))) # create patterns for strings f.setForeground(QtCore.Qt.magenta) r.setPattern("\".*\"") self.rules.append((QtCore.QRegExp(r), QtGui.QTextCharFormat(f))) # create patterns for substitutions f.setForeground(QtGui.QColor(127, 64, 127)) r.setPattern("\\$\\(.*\\)") self.rules.append((QtCore.QRegExp(r), QtGui.QTextCharFormat(f))) # create patterns for DOCTYPE f.setForeground(QtCore.Qt.lightGray) r.setPattern("<!DOCTYPE.*>") self.rules.append((QtCore.QRegExp(r), QtGui.QTextCharFormat(f))) r.setPattern("<\\?xml.*\\?>") self.rules.append((QtCore.QRegExp(r), QtGui.QTextCharFormat(f))) self.commentFormat.setFontItalic(True) self.commentFormat.setForeground(QtCore.Qt.darkGray) # part to select an XML block self._current_mark_range = (-1, -1) # absolute (start, end) positions
def addRow(self, label, c_rgba, mean, deviation): rowIdx = self.rowCount() - 1 self.insertRow(rowIdx) # create QColor color = QtGui.QColor.fromRgbF(c_rgba[0], c_rgba[1], c_rgba[2], c_rgba[3]) # create QBrush with color brush = QtGui.QBrush(color) # legend item leg_item = QTableWidgetItem(label) leg_item.setBackground(brush) self.setItem(rowIdx, 0, leg_item) # mean item mean_item = QTableWidgetItem(str(mean)) mean_item.setBackground(brush) self.setItem(rowIdx, 1, mean_item) # deviation item dev_item = QTableWidgetItem(str(deviation)) dev_item.setBackground(brush) self.setItem(rowIdx, 2, dev_item)
def __init__(self, params=dict(), buttons=QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok, sidebar_var='', parent=None): ''' Creates an input dialog. @param params: a dictionary with parameter names and (type, values). The C{value}, can be a primitive value, a list with values or parameter dictionary to create groups. In this case the type is the name of the group. @type params: C{dict(str:(str, {value, [..], dict()}))} ''' QtGui.QDialog.__init__(self, parent=parent) self.setObjectName('ParameterDialog - %s'%str(params)) self.__current_path = nm.settings().current_dialog_path self.horizontalLayout = QtGui.QHBoxLayout(self) self.horizontalLayout.setObjectName("horizontalLayout") self.horizontalLayout.setContentsMargins(1, 1, 1, 1) self.verticalLayout = QtGui.QVBoxLayout() self.verticalLayout.setObjectName("verticalLayout") self.verticalLayout.setContentsMargins(1, 1, 1, 1) # add filter row self.filter_frame = QtGui.QFrame(self) filterLayout = QtGui.QHBoxLayout(self.filter_frame) filterLayout.setContentsMargins(1, 1, 1, 1) label = QtGui.QLabel("Filter:", self.filter_frame) self.filter_field = QtGui.QLineEdit(self.filter_frame) filterLayout.addWidget(label) filterLayout.addWidget(self.filter_field) self.filter_field.textChanged.connect(self._on_filter_changed) self.filter_visible = True self.verticalLayout.addWidget(self.filter_frame) # create area for the parameter self.scrollArea = scrollArea = ScrollArea(self); scrollArea.setObjectName("scrollArea") scrollArea.setWidgetResizable(True) self.content = MainBox('/', 'str', False, self) scrollArea.setWidget(self.content) self.verticalLayout.addWidget(scrollArea) # add info text field self.info_field = QtGui.QTextEdit(self) self.info_field.setVisible(False) palette = QtGui.QPalette() brush = QtGui.QBrush(QtGui.QColor(255, 254, 242)) brush.setStyle(QtCore.Qt.SolidPattern) palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush) brush = QtGui.QBrush(QtGui.QColor(255, 254, 242)) brush.setStyle(QtCore.Qt.SolidPattern) palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush) brush = QtGui.QBrush(QtGui.QColor(244, 244, 244)) brush.setStyle(QtCore.Qt.SolidPattern) palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush) self.info_field.setPalette(palette) self.info_field.setFrameShadow(QtGui.QFrame.Plain) self.info_field.setReadOnly(True) self.info_field.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByKeyboard|QtCore.Qt.LinksAccessibleByMouse|QtCore.Qt.TextBrowserInteraction|QtCore.Qt.TextSelectableByKeyboard|QtCore.Qt.TextSelectableByMouse) self.info_field.setObjectName("dialog_info_field") self.verticalLayout.addWidget(self.info_field) # create buttons self.buttonBox = QtGui.QDialogButtonBox(self) self.buttonBox.setObjectName("buttonBox") self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(buttons) self.buttonBox.accepted.connect(self.accept) self.buttonBox.rejected.connect(self.reject) self.verticalLayout.addWidget(self.buttonBox) self.horizontalLayout.addLayout(self.verticalLayout) # add side bar for checklist values = nm.history().cachedParamValues('/%s'%sidebar_var) self.sidebar_frame = QtGui.QFrame() self.sidebar_frame.setObjectName(sidebar_var) sidebarframe_verticalLayout = QtGui.QVBoxLayout(self.sidebar_frame) sidebarframe_verticalLayout.setObjectName("sidebarframe_verticalLayout") sidebarframe_verticalLayout.setContentsMargins(1, 1, 1, 1) self._sidebar_selected = 0 if len(values) > 1 and sidebar_var in params: self.horizontalLayout.addWidget(self.sidebar_frame) try: self.sidebar_default_val = params[sidebar_var][1] except: self.sidebar_default_val = '' values.sort() for v in values: checkbox = QtGui.QCheckBox(v) checkbox.stateChanged.connect(self._on_sidebar_stateChanged) self.sidebar_frame.layout().addWidget(checkbox) self.sidebar_frame.layout().addItem(QtGui.QSpacerItem(100, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)) # set the input fields if params: self.content.createFieldFromValue(params) self.setInfoActive(False) if self.filter_frame.isVisible(): self.filter_field.setFocus() self.setMinimumSize(350,200)