本文整理汇总了Python中qgis.core.QgsVectorFileWriter.driverMetadata方法的典型用法代码示例。如果您正苦于以下问题:Python QgsVectorFileWriter.driverMetadata方法的具体用法?Python QgsVectorFileWriter.driverMetadata怎么用?Python QgsVectorFileWriter.driverMetadata使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.core.QgsVectorFileWriter
的用法示例。
在下文中一共展示了QgsVectorFileWriter.driverMetadata方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: on_file_browse
# 需要导入模块: from qgis.core import QgsVectorFileWriter [as 别名]
# 或者: from qgis.core.QgsVectorFileWriter import driverMetadata [as 别名]
def on_file_browse(self):
settings = QSettings()
# look for directory
path = QgsProject.instance().homePath()
if path == '':
path = settings.value("mask/file_dir", '')
if path == '':
path = QDir.homePath()
drivers = QgsVectorFileWriter.ogrDriverList()
filterList = []
filterMap = {}
for ln, n in drivers.items():
# grrr, driverMetadata is not really consistent
if n == "ESRI Shapefile":
ext = "shp"
glob = "*.shp"
else:
md = QgsVectorFileWriter.MetaData()
if QgsVectorFileWriter.driverMetadata(n, md):
ext = md.ext
glob = md.glob
else:
continue
fn = "%s (%s)" % (ln, glob)
filterMap[fn] = (n, ext, glob)
filterList += [fn]
fileFilters = ';;'.join(filterList)
fd = QFileDialog(None, self.tr("Select a filename to save the mask layer to"),
path, fileFilters)
save_format_name = self.parameters.file_format
self.save_format = None
for k, v in filterMap.items():
if v[0] == save_format_name:
self.save_format = v
fd.selectNameFilter(k)
break
def on_filter_selected(ff):
self.save_format = filterMap[ff]
fd.filterSelected.connect(on_filter_selected)
fd.setAcceptMode(QFileDialog.AcceptSave)
r = fd.exec_()
if r == 1:
fn = fd.selectedFiles()[0]
driver, ext, glob = self.save_format
if not fn.endswith("." + ext):
fn += "." + ext
self.ui.filePath.setText(fn)
self.ui.formatLbl.setText(self.save_format[0])
self.parameters.file_format = self.save_format[0]
self.parameters.file_path = fn