当前位置: 首页>>代码示例>>Python>>正文


Python QWidget.paintEvent方法代码示例

本文整理汇总了Python中PyQt5.QtWidgets.QWidget.paintEvent方法的典型用法代码示例。如果您正苦于以下问题:Python QWidget.paintEvent方法的具体用法?Python QWidget.paintEvent怎么用?Python QWidget.paintEvent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在PyQt5.QtWidgets.QWidget的用法示例。


在下文中一共展示了QWidget.paintEvent方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: paintEvent

# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import paintEvent [as 别名]
    def paintEvent(self, event):
        QWidget.paintEvent(self, event)
        self.update_cache()
        if not self.cache:
            return

        rect = self._nscrollbar.overlay_rect()
        sb_range = self._nscrollbar.get_scrollbar_range()
        sb_range = max(self.visible_range, sb_range)
        # horizontal_margin = 3
        # result_width = rect.width() - 2 * horizontal_margin + 1
        result_width = rect.width() / 3
        result_height = min(rect.height() / sb_range + 1, 4)
        # x = rect.left() + horizontal_margin
        x = rect.center().x() - 1
        offset = rect.height() / sb_range * self.range_offset
        vertical_margin = ((rect.height() / sb_range) - result_height) / 2

        painter = QPainter(self)

        for lineno in self.cache.keys():
            marker = self.cache[lineno]
            top = rect.top() + offset + vertical_margin + \
                marker.position / sb_range * rect.height()
            # bottom = top + result_height
            painter.fillRect(
                x,
                top,
                result_width,
                4,
                QColor(marker.color))
开发者ID:ninja-ide,项目名称:ninja-ide,代码行数:33,代码来源:scrollbar.py

示例2: paintEvent

# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import paintEvent [as 别名]
 def paintEvent(self, event):
     QWidget.paintEvent(self, event)
     painter = QPainter(self)
     painter.setBrush(QBrush(QColor(Qt.black)))
     painter.setPen(QPen())
     painter.setOpacity(self.value)
     painter.drawRect(self.rect())
开发者ID:hgoldfish,项目名称:quickpanel,代码行数:9,代码来源:__init__.py

示例3: paintEvent

# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import paintEvent [as 别名]
 def paintEvent(self, event):
     """由于继承的问题会导致子控件QWidget无法通过QSS设置样式,需要重写该方法"""
     option = QStyleOption()
     option.initFrom(self)
     painter = QPainter(self)
     self.style().drawPrimitive(QStyle.PE_Widget, option, painter, self)
     QWidget.paintEvent(self, event)
     # super(BaseWidget, self).paintEvent(event)
开发者ID:892768447,项目名称:BlogClient,代码行数:10,代码来源:base.py

示例4: paintEvent

# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import paintEvent [as 别名]
    def paintEvent(self, QPaintEvent):
        QWidget.paintEvent(self, QPaintEvent)
        qp = QPainter()
        qp.begin(self)

        qp.setBrush(self.pointer.color)
        qp.drawEllipse(0, 0, 10 - 1, 10 - 1)

        qp.end()
开发者ID:woellij,项目名称:wiimote-musicmaker,代码行数:11,代码来源:pointerWidget.py

示例5: paintEvent

# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import paintEvent [as 别名]
    def paintEvent(self, event):
        if self.pendingMessageCount() == 0:
            QWidget.paintEvent(self, event)
            return

        painter = QPainter(self)
        painter.setPen(Qt.NoPen)
        painter.setBrush(self.currentMessageBackground())
        painter.drawRect(self.contentsRect())
开发者ID:bjones1,项目名称:enki,代码行数:11,代码来源:queued_msg_tool_bar.py

示例6: paintEvent

# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import paintEvent [as 别名]
 def paintEvent(self, event):
     QWidget.paintEvent(self, event)
     width, height = self.width(), self.height()
     polygon = QPolygon()
     for i, rate in enumerate(self.loads):
         x = width - i * self.pointDistance
         y = height - rate * height
         if x < self.boxWidth:
             break
         polygon.append(QPoint(x, y))
     painter = QPainter(self)
     pen = QPen()
     pen.setColor(Qt.darkGreen)
     painter.setPen(pen)
     painter.setRenderHint(QPainter.Antialiasing, True)
     #画网格
     painter.setOpacity(0.5)
     gridSize = self.pointDistance * 4
     deltaX = (width - self.boxWidth) % gridSize + self.boxWidth
     deltaY = height % gridSize
     for i in range(int(width / gridSize)):
         x = deltaX + gridSize * i
         painter.drawLine(x, 0, x, height)
     for j in range(int(height / gridSize)):
         y = j * gridSize + deltaY
         painter.drawLine(self.boxWidth, y, width, y)
     #画折线
     pen.setColor(Qt.darkCyan)
     pen.setWidth(2)
     painter.setPen(pen)
     painter.setOpacity(1)
     painter.drawPolyline(polygon)
     #画展示框
     if len(self.loads) > 0:
         rate = self.loads[0]
     else:
         rate = 1.0
     rect1 = QRect(4, height * 0.05, self.boxWidth - 9, height * 0.7)
     rect2 = QRect(4, height * 0.8, self.boxWidth - 9, height * 0.2)
     centerX = int(rect1.width() / 2) + 1
     pen.setWidth(1)
     for i in range(rect1.height()):
         if i % 4 == 0:
             continue
         if (rect1.height() - i) / rect1.height() > rate:
             pen.setColor(Qt.darkGreen)
         else:
             pen.setColor(Qt.green)
         painter.setPen(pen)
         for j in range(rect1.width()):
             if centerX - 1 <= j <= centerX + 1:
                 continue
             painter.drawPoint(rect1.x() + j, rect1.y() + i)
     pen.setColor(Qt.black)
     painter.setPen(pen)
     painter.drawText(rect2, Qt.AlignHCenter | Qt.AlignVCenter, str(int(rate * 100)) + "%")
开发者ID:hgoldfish,项目名称:quickpanel,代码行数:58,代码来源:machine_load.py

示例7: paintEvent

# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import paintEvent [as 别名]
 def paintEvent(self, event):
     QWidget.paintEvent(self, event)
     if self.dataSource is None:
         return
     painter = QPainter(self)
     self.current_painter = painter
     painter.setRenderHints(QPainter.Antialiasing|QPainter.TextAntialiasing)
     painter.fillRect(self.rect(), Qt.white)
     self.dataSource.draw()
     del self.current_painter
开发者ID:patrickatamaniuk,项目名称:moneyguru,代码行数:12,代码来源:chart_view.py

示例8: paintEvent

# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import paintEvent [as 别名]
 def paintEvent(self, event):
     QWidget.paintEvent(self, event)
     if self.begin is None:
         return
     board = self.parent().board
     pieceWidth = board.contentsRect().width() // TetrixBoard.BoardWidth
     brush = QBrush(Qt.yellow)
     painter = QPainter(self)
     painter.setBrush(brush)
     painter.drawRect(board.contentsRect().left() + self.begin * pieceWidth, 0, \
                      (self.end - self.begin + 1) * pieceWidth, self.height() - 1 )
开发者ID:hgoldfish,项目名称:quickpanel,代码行数:13,代码来源:tetrix.py

示例9: paintEvent

# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import paintEvent [as 别名]
	def paintEvent(self, event):
		if not globalSettings.lineNumbersEnabled:
			return QWidget.paintEvent(self, event)
		painter = QPainter(self)
		painter.fillRect(event.rect(), colorValues['lineNumberArea'])
		painter.setPen(colorValues['lineNumberAreaText'])
		cursor = self.editor.cursorForPosition(QPoint(0, 0))
		atEnd = False
		fontHeight = self.fontMetrics().height()
		height = self.editor.height()
		if globalSettings.relativeLineNumbers:
			relativeTo = self.editor.textCursor().blockNumber()
		else:
			relativeTo = -1
		while not atEnd:
			rect = self.editor.cursorRect(cursor)
			if rect.top() >= height:
				break
			number = str(cursor.blockNumber() - relativeTo).replace('-', '−')
			painter.drawText(0, rect.top(), self.width() - 2,
			                 fontHeight, Qt.AlignRight, number)
			cursor.movePosition(QTextCursor.EndOfBlock)
			atEnd = cursor.atEnd()
			if not atEnd:
				cursor.movePosition(QTextCursor.NextBlock)
开发者ID:starofrainnight,项目名称:retext,代码行数:27,代码来源:editor.py

示例10: paintEvent

# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import paintEvent [as 别名]
 def paintEvent(self, event):
     QWidget.paintEvent(self, event)
     pen = QPen()
     pen.setWidth(2)
     pen.setColor(QColor(200, 200, 200))
     rect = self.rect()
     rect = rect.adjusted(0, 0, -1, -1)
     painter = QPainter(self)
     painter.setRenderHint(QPainter.Antialiasing, True)
     painter.setPen(pen)
     painter.setOpacity(0.5)
     painter.setBrush(QBrush(QColor(Qt.white)))
     painter.drawRoundedRect(rect, 15, 15)
     painter.setOpacity(1)
     pen.setColor(Qt.black)
     painter.setPen(pen)
     text = self.name + "\n" + self.description
     painter.drawText(self.rect(), Qt.AlignHCenter | Qt.AlignVCenter, text)
开发者ID:hgoldfish,项目名称:quickpanel,代码行数:20,代码来源:layout_editor.py

示例11: paintEvent

# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import paintEvent [as 别名]
 def paintEvent(self, event):
     QWidget.paintEvent(self, event)
     p = QPainter(self)
     view = self.view
     first = view.firstVisibleBlock()
     first_row = first.blockNumber()
     block = first
     row = first_row
     y = view.contentOffset().y()
     pageBottom = max(view.height(), view.verticalScrollBar().value() + view.viewport().height())
     fm = self.fm
     w = self.width() - 8
     while block.isValid():
         txt = str(row).rjust(5)
         y = view.blockBoundingGeometry(block).y()
         if y >= pageBottom:
             break
         x = w - fm.width(txt)
         p.drawText(x, y, txt)
         row += 1
         block = block.next()
     p.end()
开发者ID:QuLogic,项目名称:scribus-plugin-scripter,代码行数:24,代码来源:widget.py

示例12: paintEvent

# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import paintEvent [as 别名]
	def paintEvent(self, event):
		if not globalSettings.lineNumbersEnabled:
			return QWidget.paintEvent(self, event)
		painter = QPainter(self)
		painter.fillRect(event.rect(), colorValues['lineNumberArea'])
		cursor = QTextCursor(self.editor.document())
		cursor.movePosition(QTextCursor.Start)
		atEnd = False
		while not atEnd:
			rect = self.editor.cursorRect(cursor)
			block = cursor.block()
			if block.isVisible():
				number = str(cursor.blockNumber() + 1)
				painter.setPen(colorValues['lineNumberAreaText'])
				painter.drawText(0, rect.top(), self.width() - 2,
					self.fontMetrics().height(), Qt.AlignRight, number)
			cursor.movePosition(QTextCursor.EndOfBlock)
			atEnd = cursor.atEnd()
			if not atEnd:
				cursor.movePosition(QTextCursor.NextBlock)
开发者ID:farseerfc,项目名称:retext,代码行数:22,代码来源:editor.py

示例13: paintEvent

# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import paintEvent [as 别名]
    def paintEvent(self, pe):
        p = QPainter(self)
        p.setRenderHint(QPainter.Antialiasing)

        pen = QPen()
        pen.setWidth(1)
        pen.setColor(QColor(0x8c, 0xa3, 0xb0))
        p.setPen(pen)

        p.setBrush(QColor(0xe4, 0xec, 0xf4))

        rx = 6

        space = self.space
        w = self.usable_width
        kw = self.key_w

        def drawRow(row, sx, sy, last_end=False):
            x = sx
            y = sy
            keys = row
            rw = w - sx
            i = 0
            for k in keys:
                rect = QRectF(x, y, kw, kw)

                if i == len(keys) - 1 and last_end:
                    rect.setWidth(rw)

                p.drawRoundedRect(rect, rx, rx)
                p.setPen(Qt.black)

                rect.adjust(5, 1, 0, 0)

                p.setFont(self.lowerFont)
                p.drawText(
                    rect, Qt.AlignLeft | Qt.AlignBottom, self.regular_text(k))

                p.setFont(self.upperFont)
                p.drawText(
                    rect, Qt.AlignLeft | Qt.AlignTop, self.shift_text(k))

                rw = rw - space - kw
                x = x + space + kw
                i = i + 1

                p.setPen(pen)
            return (x, rw)

        x = .5
        y = .5

        keys = self.kb["keys"]
        ext_return = self.kb["extended_return"]

        first_key_w = 0

        rows = 4
        remaining_x = [0, 0, 0, 0]
        remaining_widths = [0, 0, 0, 0]

        for i in range(0, rows):
            if first_key_w > 0:
                first_key_w = first_key_w * 1.375

                if self.kb == self.kb_105 and i == 3:
                    first_key_w = kw * 1.275

                rect = QRectF(x, y, first_key_w, kw)
                p.drawRoundedRect(rect, rx, rx)
                x = x + first_key_w + space
            else:
                first_key_w = kw

            x, rw = drawRow(keys[i], x, y, i == 1 and not ext_return)

            remaining_x[i] = x
            remaining_widths[i] = rw

            if i != 1 and i != 2:
                rect = QRectF(x, y, rw, kw)
                p.drawRoundedRect(rect, rx, rx)

            x = .5
            y = y + space + kw

        if ext_return:
            rx = rx * 2
            x1 = remaining_x[1]
            y1 = .5 + kw * 1 + space * 1
            w1 = remaining_widths[1]
            x2 = remaining_x[2]
            y2 = .5 + kw * 2 + space * 2

            # this is some serious crap... but it has to be so
            # maybe one day keyboards won't look like this...
            # one can only hope
            pp = QPainterPath()
            pp.moveTo(x1, y1 + rx)
            pp.arcTo(x1, y1, rx, rx, 180, -90)
#.........这里部分代码省略.........
开发者ID:linuxmint,项目名称:ubiquity,代码行数:103,代码来源:Keyboard.py

示例14: paintEvent

# 需要导入模块: from PyQt5.QtWidgets import QWidget [as 别名]
# 或者: from PyQt5.QtWidgets.QWidget import paintEvent [as 别名]
 def paintEvent(self, ev):
     QWidget.paintEvent(self, ev)
开发者ID:AlexSchr,项目名称:frescobaldi,代码行数:4,代码来源:popplerdummy.py


注:本文中的PyQt5.QtWidgets.QWidget.paintEvent方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。