我正在开发一个简单的软件,它有一个 GUI。(我正在使用 PyQt)我有 2 个单选按钮。如果选择第一个,则通过单击 Graphicsscene,GraphicsItem 将添加到场景中。我想要一个按钮,按下它可以改变这些点的颜色。颜色并不重要。例如,它可以是红色的。我怎么能这么做呢?谢谢你!
为了放置小部件,我使用了 Qt Designer,然后创建了一个名为 SimpleWindow 的子类。
这是代码: 点类:
from PyQt5.QtCore import QRectF, Qt
from PyQt5.QtWidgets import QGraphicsItem
class Point(QGraphicsItem):
def __init__(self, x, y):
super(Point, self).__init__()
self.setFlag(QGraphicsItem.ItemIsSelectable, True)
self.rectF = QRectF(0, 0, 4, 4)
self.x=x
self.y=y
def boundingRect(self):
return self.rectF
def paint(self, painter=None, style=None, widget=None):
painter.fillRect(self.rectF, Qt.black)
import sys
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtGui import QPen, QBrush
from PyQt5.QtWidgets import QGraphicsScene
Run Code Online (Sandbox Code Playgroud)
现场:
class PointsGraphicsScene(QGraphicsScene):
def __init__(self, parent=None):
QGraphicsScene.__init__(self, parent)
self.setSceneRect(0, 0, 200, 200) …Run Code Online (Sandbox Code Playgroud) 我想用 PyQt 用 Python 编写一个简单的程序。
我有一个 QGraphicsScene,我想执行以下操作:有 2 个使用两个单选按钮的选项:
我对 PyQt 和 GUI 编程都有点陌生。我的主要问题是我不太明白 Qt 中鼠标事件是如何工作的。如果有人如此友善和耐心地向我解释鼠标事件的基础知识,并为我解决上述问题提供一些提示,我将非常感激。
我还附上一张图片,以形象化问题。

我正在尝试做这个问题。为了放置小部件,我使用了 Qt Designer,然后创建了一个名为 SimpleWindow 的子类。
import sys
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtGui import QPen, QBrush
from PyQt5.QtWidgets import QGraphicsScene
import points
class SimpleWindow(QtWidgets.QMainWindow, points.Ui_Dialog):
def __init__(self, parent=None):
super(SimpleWindow, self).__init__(parent)
self.setupUi(self)
self.graphicsView.scene = QGraphicsScene()
self.graphicsView.setScene(self.graphicsView.scene)
self.graphicsView.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
self.graphicsView.mousePressEvent = self.pixelSelect
def pixelSelect(self, event):
pen = QPen(QtCore.Qt.black)
brush = QBrush(QtCore.Qt.black)
x = event.x()
y = event.y()
if self.radioButton.isChecked():
print(x, y) …Run Code Online (Sandbox Code Playgroud)