Рисование PyQt Painter

Я пытаюсь нарисовать карту с помощью pyqt, но это не работает. Пока что либо у меня нет вывода, либо возникают ошибки, например, ошибка Seg.

Вот код, который я сейчас использую:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *


class Example(QWidget):
    def __init__(self):
        super(Example, self).__init__()
        self.setGeometry(0, 0, 500, 500)
        self.setWindowTitle('Painel')
        list_ = []
        file_ = open('points.txt')
        for line in file_.readlines():
            l = line.replace("\n", "")
            l = l.split(" ")
            try:
                l = [float(i) for i in l]
                list_.append(l)
            except: pass#possible strings
        first = list_[0]
        list_ = list_[1:]
        self.path = QPainterPath()
        self.path.moveTo(*first)
        for i in list_:
            self.path.lineTo(*i)

    def paintEvent(self, e):      
        qp = QPainter()

        qp.begin(self)
        qp.drawPath(self.path)
        qp.end()


app = QApplication(sys.argv)
ex = Example()
ex.show()
app.exec_()

[Edit] А вот и содержимое файла points.txt.

-57.328 -29.972
-57.323 -29.937
-57.329 -29.895
-57.328 -29.880
-57.295 -29.832
-57.242 -29.789
-57.227 -29.780
-57.171 -29.781
-57.134 -29.771

И я использую mac os 10.6.7 и активный python 2.7.1


person Rafael Barros    schedule 15.05.2011    source источник


Ответы (1)


Я использую Python 2.6.6 на старой стабильной версии Debian.

Вам нужно будет компенсировать отрицательные числа, чтобы сделать их положительными, иначе они будут отображаться «за кадром» и не будут видны в вашем приложении.

person jcomeau_ictx    schedule 15.05.2011
comment
О, это для остальной части кода. тем не менее, удаление этой линии не заставляет paintEvent нарисовать путь. - person Rafael Barros; 15.05.2011
comment
какую трассировку стека вы получаете? - person jcomeau_ictx; 15.05.2011
comment
О, это сработало. Эти моменты работали для версии Java этого программного обеспечения. Спасибо. - person Rafael Barros; 15.05.2011