如何将多个shapefile通过QFileDialog.getOpenFileNames()?

2024-09-28 03:18:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为QGIS3编写一个插件,我想让用户在点击toolbutton之后选择两个自己选择的矢量文件。当选择一个文件时,选择的功能可以正常工作,但是当它涉及到两个或更多的文件时,我就会遇到麻烦。你知道吗

我想用getOpenFileNames替换getOpenFileName,以便将多个矢量文件上载到QGIS中。但是,我找不到任何有关如何使用函数的文档,即第二个矢量文件应插入的位置。
我试着用[infle,infle1]来定义这两个向量,而不是仅仅用infle(一个)来定义,但是我没有成功。。你知道吗

def loadVector(self):
    self.dlg.comboBox.clear()
    layers = [layer for layer in QgsProject.instance().mapLayers().values()]
    vec = []
    for layer in layers:
        if layer.type() == QgsMapLayer.VectorLayer:
            vec.append(layer.name())
    #self.dlg.comboBox.addItems(vec)
# self.vectorOpen()

def vectorOpen(self):
    inFile = str(QFileDialog.getOpenFileName(caption="open shapefile", filter="shapefiles (*.shp)")[0])
    if inFile is not None:
        self.iface.addVectorLayer(inFile, str.split(os.path.basename(inFile), ".")[0], "ogr")

        self.iface.addVectorLayer(inFile, "INFILE", "ogr")
        self.loadVector()

Tags: 文件selflayerfor定义layersdef矢量

热门问题