def displayText(value):
if isinstance(value, (bool, int, QByteArray)):
return str(value)
if isinstance(value, str):
return value
elif isinstance(value, float):
return '%g' % value
elif isinstance(value, QColor):
return '(%u,%u,%u,%u)' % (value.red(), value.green(), value.blue(), value.alpha())
elif isinstance(value, (QDate, QDateTime, QTime)):
return value.toString(Qt.ISODate)
elif isinstance(value, QPoint):
return '(%d,%d)' % (value.x(), value.y())
elif isinstance(value, QRect):
return '(%d,%d,%d,%d)' % (value.x(), value.y(), value.width(), value.height())
elif isinstance(value, QSize):
return '(%d,%d)' % (value.width(), value.height())
elif isinstance(value, list):
return ','.join(value)
elif value is None:
return '<Invalid>'
return '<%s>' % value
python类QColor()的实例源码
def drawSquare(self, painter, x, y, shape):
colorTable = [0x000000, 0xCC6666, 0x66CC66, 0x6666CC,
0xCCCC66, 0xCC66CC, 0x66CCCC, 0xDAAA00]
color = QColor(colorTable[shape])
painter.fillRect(x + 1, y + 1, self.squareWidth() - 2,
self.squareHeight() - 2, color)
painter.setPen(color.lighter())
painter.drawLine(x, y + self.squareHeight() - 1, x, y)
painter.drawLine(x, y, x + self.squareWidth() - 1, y)
painter.setPen(color.darker())
painter.drawLine(x + 1, y + self.squareHeight() - 1,
x + self.squareWidth() - 1, y + self.squareHeight() - 1)
painter.drawLine(x + self.squareWidth() - 1,
y + self.squareHeight() - 1, x + self.squareWidth() - 1, y + 1)
def paintEvent(self, event):
sineTable = (0, 38, 71, 92, 100, 92, 71, 38, 0, -38, -71, -92, -100, -92, -71, -38)
metrics = QFontMetrics(self.font())
x = (self.width() - metrics.width(self.text)) / 2
y = (self.height() + metrics.ascent() - metrics.descent()) / 2
color = QColor()
painter = QPainter(self)
for i, ch in enumerate(self.text):
index = (self.step + i) % 16
color.setHsv((15 - index) * 16, 255, 191)
painter.setPen(color)
painter.drawText(x, y - ((sineTable[index] * metrics.height()) / 400), ch)
x += metrics.width(ch)
def createImage(self, transform):
scaledRect = transform.mapRect(QRect(0, 0, ScanItem.ITEM_WIDTH, ScanItem.ITEM_HEIGHT))
image = QImage(scaledRect.width(), scaledRect.height(),
QImage.Format_ARGB32_Premultiplied)
image.fill(QColor(0, 0, 0, 0).rgba())
painter = QPainter(image)
painter.setRenderHint(QPainter.Antialiasing)
if Colors.useEightBitPalette:
painter.setPen(QPen(QColor(100, 100, 100), 2))
painter.setBrush(QColor(206, 246, 117))
painter.drawEllipse(1, 1, scaledRect.width() - 2,
scaledRect.height() - 2)
else:
painter.setPen(QPen(QColor(0, 0, 0, 15), 1))
painter.setBrush(QColor(0, 0, 0, 15))
painter.drawEllipse(1, 1, scaledRect.width() - 2,
scaledRect.height() - 2)
return image
def createImage(self, transform):
if self.type == DemoTextItem.DYNAMIC_TEXT:
return None
sx = min(transform.m11(), transform.m22())
sy = max(transform.m22(), sx)
textItem = QGraphicsTextItem()
textItem.setHtml(self.text)
textItem.setTextWidth(self.textWidth)
textItem.setFont(self.font)
textItem.setDefaultTextColor(self.textColor)
textItem.document().setDocumentMargin(2)
w = textItem.boundingRect().width()
h = textItem.boundingRect().height()
image = QImage(int(w * sx), int(h * sy),
QImage.Format_ARGB32_Premultiplied)
image.fill(QColor(0, 0, 0, 0).rgba())
painter = QPainter(image)
painter.scale(sx, sy)
style = QStyleOptionGraphicsItem()
textItem.paint(painter, style, None)
return image
def __init__(self):
super(StickMan, self).__init__()
self.m_sticks = True
self.m_isDead = False
self.m_pixmap = QPixmap('images/head.png')
self.m_penColor = QColor(Qt.white)
self.m_fillColor = QColor(Qt.black)
# Set up start position of limbs.
self.m_nodes = []
for x, y in Coords:
node = Node(QPointF(x, y), self)
node.positionChanged.connect(self.childPositionChanged)
self.m_nodes.append(node)
self.m_perfectBoneLengths = []
for n1, n2 in Bones:
node1 = self.m_nodes[n1]
node2 = self.m_nodes[n2]
dist = node1.pos() - node2.pos()
self.m_perfectBoneLengths.append(math.hypot(dist.x(), dist.y()))
self.startTimer(10)
def initUI(self):
# QToolTip.setFont(QFont('SansSerif', 9))
self.cwidget = GUICenterWidget()
self.setCentralWidget(self.cwidget)
# self.setToolTip('This is a <b>QWidget</b> widget')
self.statusBar().showMessage('Ready')
self.center()
self.setWindowTitle('Coliform Control GUI')
self.onewiretimer = QTimer(self)
self.onewiretimer.timeout.connect(self.cwidget.onewireOn)
self.onewiretimer.start(1000)
# self.p = QPalette(self.palette())
# self.p.setColor(QPalette.Window, QColor(53, 53, 53))
# self.p.setColor(QPalette.WindowText, Qt.white)
# self.p.setColor(QPalette.AlternateBase, QColor(53, 53, 53))
# self.p.setColor(QPalette.ToolTipBase, Qt.white)
# self.p.setColor(QPalette.ToolTipText, Qt.white)
# self.p.setColor(QPalette.Button, QColor(53, 53, 53))
# self.p.setColor(QPalette.ButtonText, Qt.white)
# self.p.setColor(QPalette.BrightText, Qt.red)
# self.p.setColor(QPalette.Highlight, QColor(142, 45, 197).lighter())
# self.p.setColor(QPalette.HighlightedText, Qt.black)
# self.setPalette(self.p)
self.show()
def initUI(self):
# QToolTip.setFont(QFont('SansSerif', 9))
self.cwidget = CameraCenterWidget()
self.setCentralWidget(self.cwidget)
# self.setToolTip('This is a <b>QWidget</b> widget')
self.center()
self.setWindowTitle('Camera Control GUI')
self.statusBarTimer = QTimer(self)
self.statusBarTimer.timeout.connect(self.statusUpdate)
self.statusBarTimer.start(100)
# self.p = QPalette(self.palette())
# self.p.setColor(QPalette.Window, QColor(53, 53, 53))
# self.p.setColor(QPalette.WindowText, Qt.white)
# self.p.setColor(QPalette.AlternateBase, QColor(53, 53, 53))
# self.p.setColor(QPalette.ToolTipBase, Qt.white)
# self.p.setColor(QPalette.ToolTipText, Qt.white)
# self.p.setColor(QPalette.Button, QColor(53, 53, 53))
# self.p.setColor(QPalette.ButtonText, Qt.white)
# self.p.setColor(QPalette.BrightText, Qt.red)
# self.p.setColor(QPalette.Highlight, QColor(142, 45, 197).lighter())
# self.p.setColor(QPalette.HighlightedText, Qt.black)
# self.setPalette(self.p)
self.show()
def initUI(self):
# QToolTip.setFont(QFont('SansSerif', 9))
self.cwidget = RGBCenterWidget()
self.setCentralWidget(self.cwidget)
# self.setToolTip('This is a <b>QWidget</b> widget')
self.center()
self.setWindowTitle('RGB Sensor GUI')
self.statusBarTimer = QTimer(self)
self.statusBarTimer.timeout.connect(self.statusUpdate)
self.statusBarTimer.start(100)
# self.p = QPalette(self.palette())
# self.p.setColor(QPalette.Window, QColor(53, 53, 53))
# self.p.setColor(QPalette.WindowText, Qt.white)
# self.p.setColor(QPalette.AlternateBase, QColor(53, 53, 53))
# self.p.setColor(QPalette.ToolTipBase, Qt.white)
# self.p.setColor(QPalette.ToolTipText, Qt.white)
# self.p.setColor(QPalette.Button, QColor(53, 53, 53))
# self.p.setColor(QPalette.ButtonText, Qt.white)
# self.p.setColor(QPalette.BrightText, Qt.red)
# self.p.setColor(QPalette.Highlight, QColor(142, 45, 197).lighter())
# self.p.setColor(QPalette.HighlightedText, Qt.black)
# self.setPalette(self.p)
self.show()
def format(color, style=''):
word_color = QColor()
word_color.setNamedColor(color)
word_format = QTextCharFormat()
word_format.setForeground(word_color)
if 'italic' in style:
word_format.setFontItalic(True)
elif 'bold' in style:
word_format.setFontWeight(QFont.Bold)
return word_format
def default_visual(self):
# Pallete
default_palette = self.text_widget.palette()
# Background
default_background_color = QtGui.QColor()
default_background_color.setNamedColor('#2B2B2B')
default_palette.setColor(QtGui.QPalette.Base, default_background_color)
# Font Color
default_font_color = QtGui.QColor()
default_font_color.setNamedColor('#F8F8F2')
default_palette.setColor(QtGui.QPalette.Text, default_font_color)
# Font Type
default_font = QtGui.QFont('Consolas', 13)
self.text_widget.setFont(default_font)
self.text_widget.setPalette(default_palette)
def highlight_stack_pointer(self, sp, width=8):
""" Removes old stack pointer highlights and creates a new one """
if self.stack_pointer is not None:
self.get_widget('stack').clear_named_highlight('sp')
self.highlight_bytes_at_address('stack', sp, width, QColor(162, 217, 175), 'sp')
self.stack_pointer = sp
def highlight_base_pointer(self, bp, width=8):
""" Highlights the base pointer """
if self.base_pointer is not None:
self.get_widget('stack').clear_named_highlight('bp')
self.highlight_bytes_at_address('stack', bp, width, QColor(128, 198, 233), 'bp')
self.base_pointer = bp
def highlight_retn_addr(self, ret, width=8):
""" Highlights the return address, unsurprisingly """
if self.retn_address is not None:
self.get_widget('stack').clear_named_highlight('ret')
if (ret is not None):
self.highlight_bytes_at_address('stack', ret, width, QColor(222, 143, 151), 'ret')
self.retn_address = ret
def write(self, text):
# TODO: Doesn't seem to have any effect
if self.color:
original = self.edit_widget.textColor()
self.edit_widget.setTextColor(QtGui.QColor(self.color))
self.edit_widget.moveCursor(QtGui.QTextCursor.End)
self.edit_widget.insertPlainText(text)
if self.color:
self.edit_widget.setTextColor(original)
if self.out:
self.out.write(text)
def _add_measurement(self, length, angle, added_time):
"""
Adds a visualization for a measured distance to the scene
:param length: length in cm
:param angle: the angle
"""
mx, my = self._get_middle()
angle_rad = deg2rad(angle)
ex, ey = mx + length * math.cos(angle_rad), my + length * math.sin(angle_rad)
age = time.time() - added_time
age = age if age < self.fade_out_time else self.fade_out_time
alpha_channel_value = scale((0, self.fade_out_time), (255, 0), age)
assert 0 <= alpha_channel_value <= 255
brush_color = QColor(self.measured_distances_color)
brush_color.setAlpha(alpha_channel_value)
brush = QBrush(brush_color)
tpen = QPen(brush_color)
self.scene.addLine(mx, my, ex, ey, pen=tpen)
self.scene.addEllipse(ex-self.dot_width/2, ey-self.dot_width/2, self.dot_width, self.dot_width, pen=tpen, brush=brush)
def colorize_can_id(frame):
if not frame.extended:
return
mask = 0b11111
priority = (frame.id >> 24) & mask
col = QColor()
col.setRgb(0xFF, 0xFF - (mask - priority) * 6, 0xFF)
return col
def colorize_transfer_id(e):
if len(e[1].data) < 1:
return
# Making a rather haphazard hash using transfer ID and a part of CAN ID
x = (e[1].data[-1] & 0b11111) | (((e[1].id >> 16) & 0b1111) << 5)
red = ((x >> 6) & 0b111) * 25
green = ((x >> 3) & 0b111) * 25
blue = (x & 0b111) * 25
col = QColor()
col.setRgb(0xFF - red, 0xFF - green, 0xFF - blue)
return col
def __call__(self, e):
ts = datetime.datetime.fromtimestamp(e[1].ts_real).strftime(self.FORMAT)
col = QColor()
# Constraining delta to [0, 1]
delta = min(1, e[1].ts_real - self._prev_ts)
if delta < 0:
col.setRgb(255, 230, 230)
else:
self._prev_ts = e[1].ts_real
col.setRgb(*([255 - int(192 * delta)] * 3))
return ts, col
def _set_color(widget, role, color):
pal = widget.palette()
pal.setColor(role, QColor(color))
widget.setAutoFillBackground(True)
widget.setPalette(pal)
widget.update()