源代码中有两种方法必须在它们之间进行交互。
第一种方法是:
def mousePressEvent(self, event):
if event.button() == QtCore.Qt.LeftButton:
event = QtGui.QMouseEvent(QtCore.QEvent.MouseButtonPress, event.pos(), QtCore.Qt.LeftButton, QtCore.Qt.LeftButton, QtCore.Qt.NoModifier)
centerX = event.pos().x()
centerY = event.pos().y()
QtWidgets.QMainWindow.mousePressEvent(self, event)
第二种方法是:
def paintEvent(self, event):
painter = QtGui.QPainter(self)
painter.setPen(QtCore.Qt.red)
painter.drawEllipse(centerX, centerY, 110, 110)
QtWidgets.QMainWindow.paintEvent(self, event)
这个程序的意义是:当我在主窗口按鼠标左键时,必须出现一个圆圈。
首先我按下鼠标左键,然后发生 QMouseEvent ,然后出现 QPaintEvent 。
由此我不知道哪里调用 paintEvent()方法必须位于 mousePressEvent()方法内,因此该程序不起作用。
当我尝试在 mousePressEvent()方法中插入调用 paintEvent()方法时,我收到错误消息。
请告诉我,何时必须在 mousePressEvent()方法中插入调用 paintEvent()方法?
谢谢!
祝你好运!
答案 0 :(得分:0)
您必须使用check_auth = () =>{
fetch(Urls.check_auth(), {
credentials: 'include',
method: 'GET'
}).then(response => {
if(response.ok) return response.json();
}).then(json => {
this.setState({Result: json.user_logged_in});
});
}
,此方法会调用update()
函数。此外,变量paintEvent
和centerX
必须是类的属性,但更好的选择是使用位置作为输入(centerY
)并验证它是否已被使用。< / p>
代码:
self.center