我正在寻找一种在QT应用程序主窗口内的窗口小部件上绘制线条的简单方法。 我用QtDesigner设计了一个带有QGraphicsview和按钮的主窗口。按下按钮时,应在图形视图中绘制一条线。难道没有一种简单的方法可以做到这一点。 QGraphicsview是绘图的正确选择吗?我现在读了文章的dozents,真的找不到解决方案。 以下是我的代码:
import sys
import mainwindowui
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class MainWindow(QMainWindow, mainwindowui.Ui_MainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
self.connect(self.pushButton1, SIGNAL("clicked()"), self.pb1_pressed)
def pb1_pressed(self):
# here I want to draw a line on the QGraphicswidget:
# something simple like: graphview.line(x1,y1,x2,y2)
我看到了许多非常复杂的解决方案,我尝试了很多,例如使用QPainter覆盖paintevent但是出现了错误,例如" QPainter :: begin:Paint device返回引擎== 0,输入:1"而且我不知道如果这是正确的方法。 有人可以给我一个非常简单的解决方案吗? 提前谢谢。
迪特尔
答案 0 :(得分:2)
QGraphicsView
是一个小部件,用于显示QGraphicsScene
的内容,因此我假设您已经拥有QGraphicsScene
。如果是这样,您可以这样在QGraphicsScene
上画一条线:
scene.addLine(QLineF(x1, y1, x2, y2))
where scene是对QGraphicsScene
实例的引用。