QPainter рисует мусор - PullRequest
       7

QPainter рисует мусор

0 голосов
/ 07 июня 2010

Фрагмент программного кода:

def add_link(Item0Num, Item1Num):
    global Mw, View # Mw - MainWindow
    if Item0Num != Item1Num and not link_exists(Item0Num, Item1Num):
        append( links_to(Item1Num), Item0Num )
        append( links_from(Item0Num), Item1Num )
        LinkGi = TLinkGi()
        Mw.Scene.addItem(LinkGi)
        LinkGi.setZValue(200)
        LinkGi.scale(1 / View.Scale, 1 / View.Scale)
        LinkGi.Item0Num = Item0Num
        LinkGi.Item1Num = Item1Num

class TLinkGi(QGraphicsItem):

    def paint(self, Painter, StyleOptionGraphicsItem, Widget):
        global Mw, View
        Pen = QPen(Qt.black, 1)
        Painter.setPen(Pen)
        X0, Y0 = task_center(self.Item0Num)
        self.setPos(X0, Y0)
        X1, Y1 = task_center(self.Item1Num)
        X, Y = int( (X1 - X0) * View.Scale ), int( (Y1 - Y0) * View.Scale )
        Painter.drawLine(0, 0, X, Y)
        #Mw.Scene.update(0, 0, Plan.Size, Plan.Size) # (1)
        #Mw.gvMain.repaint()                         # (2)

    def boundingRect(self):
        global View
        Rect = QRectF(0, 0, Plan.Size, Plan.Size)
        return Rect

Это рисует такой мусор: http://img697.imageshack.us/img697/5395/qpaintergarbage1.jpg 1 http://img697.imageshack.us/img697/5395/qpaintergarbage1.jpg

Когда строки (1) и (2) не комментируютсяне становится намного лучше: http://img63.imageshack.us/img63/9693/qpaintergarbage0.jpg 2 http://img63.imageshack.us/img63/9693/qpaintergarbage0.jpg

Пожалуйста, помогите мне решить эту проблему.

1 Ответ

2 голосов
/ 12 декабря 2010

Возможно, это происходит потому, что вы не очищаете фон перед рисованием.Или вы очищаете это вручную, но не всю область.Попробуй setAutoFillBackground (true)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...