我正在尝试学习 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)