Rafael Barros
Rafael Barros

Reputation: 2881

Drawing PyQt Painter

I'm trying to draw a map with pyqt and it does not work. So far either I have no output or I get errors like Seg fault.

Here is the code I'm using now:

#!/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] And here is some of the content of 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

And I'm using mac os 10.6.7 & active python 2.7.1

Upvotes: 2

Views: 1790

Answers (1)

jcomeau_ictx
jcomeau_ictx

Reputation: 38432

I'm using Python 2.6.6 on old Debian stable.

You'll need to offset negative numbers to make them positive, or they'll render "offscreen" and won't be visible in your app.

Upvotes: 2

Related Questions