0

QGISのpythonコンソールで動作するコードがあります。IDE で作業しようとしていますが、うまくいきません。さまざまな方法で変更しましたが、それでも返されます:

QPixmap: Must construct a QApplication before a QPaintDevice

私のコードは次のとおりです。

import processing
from qgis.core import*
from PyQt4.QtCore import *
import math
from collections import defaultdict
from shapely.geometry import LineString
import json
import datetime
import time
import itertools
import glob
import sys
from nltk import metrics

Class matching():
    def __init__(self):

        self.layers = []

        self.Dir_OSM_roads="D:/PhD works/PhD things/Julian/Matching_data/InputData/SHP/OSM_roads_no_psv_latin1_id.shp"    

    def laodLayer(self):
        self.layers[0]=QgsVectorLayer(self.Dir_OSM_roads,"test" , "ogr")
        QgsMapLayerRegistry.instance().addMapLayer(self.layers[0]);
        print self.layers[0]

    def printValidity(self):
        if not self.layers[0].isValid():
            print "layer does not exist"
        else:
            print "successful"

def main():
    app = QApplication([],True)

    qgis_prefix = "C:/Program Files (x86)/QGIS Valmiera/apps/qgis"

    QgsApplication.setPrefixPath(qgis_prefix, True)
    QgsApplication.initQgis()

    check=matching()
    check.laodLayer()
    check.printValidity()

    retval = app.exec_()

    QgsApplication.exitQgis()
    sys.exit(retval)

if __name__ == '__main__':
    main()

私はWindows 7、64でaptanaとQGIS 2.2を使用しています。

編集:私のウィンドウは64バイトです

4

0 に答える 0