小编Ham*_*ime的帖子

PyQt5 使用 keyPressEvent() 触发paintEvent()

我正在尝试学习 PyQt 矢量绘画。目前我一直在尝试将信息传递给我猜应该调用其他方法的paintEvent()方法:

我试图将不同的数字绘制到一个基本块(这里是 drawFundBlock() 方法,它应该绘制一些线条)。代码试图检查是否按下了右箭头-> drawFundamental 块,如果按下了数字(现在尝试简单地绘制“5”),它将在该基本块的某个区域上绘制该数字。但我似乎无法让 QPainter 工作。现在它似乎调用了paintEvent() 覆盖方法两次(为什么?)。有些人建议使用 update() 方法,但我不知道如何将任何参数传递给paintEvent(),它应该确定是绘制“fundblock”还是“number”。现在代码使用 update() 进行演示,但这只是移动行 - 但已经添加的行应该保留!

有什么帮助吗?

# Test QPainter etc.

from PyQt5.QtWidgets import QWidget, QApplication
from PyQt5.QtGui import QPainter, QPen, QColor, QFont
from PyQt5.QtCore import Qt, QPoint, pyqtSignal, QRect
import sys

class Example(QWidget):

    paintTrigger = pyqtSignal()

    def __init__(self):
        super().__init__()
        self.initUI()
        self.ydist = 15
        self.eveType = "drawBlock"
        self.currentRegion = QRect(50,50,50,80)
        #self.paintTrigger[self.eveType].connect(lambda:self.paintEvent())

        self.x0=5
        self.x1=25
        self.y0=5
        self.y1=25

    def initUI(self):
        self.setGeometry(300,300,280,270)
        self.setWindowTitle('Painter training')
        self.show()

    # How to pass info here, which type …
Run Code Online (Sandbox Code Playgroud)

python pyqt qwidget qpainter pyqt5

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

pyqt ×1

pyqt5 ×1

python ×1

qpainter ×1

qwidget ×1