本文整理汇总了Python中qgis.core.QgsApplication.taskManager方法的典型用法代码示例。如果您正苦于以下问题:Python QgsApplication.taskManager方法的具体用法?Python QgsApplication.taskManager怎么用?Python QgsApplication.taskManager使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.core.QgsApplication
的用法示例。
在下文中一共展示了QgsApplication.taskManager方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: testLayerRemovalBeforeRun
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import taskManager [as 别名]
def testLayerRemovalBeforeRun(self):
"""test behavior when layer is removed before task begins"""
path = os.path.join(unitTestDataPath(), 'raster', 'with_color_table.tif')
raster_layer = QgsRasterLayer(path, "test")
self.assertTrue(raster_layer.isValid())
pipe = QgsRasterPipe()
self.assertTrue(pipe.set(raster_layer.dataProvider().clone()))
tmp = create_temp_filename('remove_layer.tif')
writer = QgsRasterFileWriter(tmp)
task = QgsRasterFileWriterTask(writer, pipe, 100, 100, raster_layer.extent(), raster_layer.crs())
task.writeComplete.connect(self.onSuccess)
task.errorOccurred.connect(self.onFail)
# remove layer
raster_layer = None
QgsApplication.taskManager().addTask(task)
while not self.success and not self.fail:
QCoreApplication.processEvents()
# in this case will still get a positive result - since the pipe is cloned before the task
# begins the task is no longer dependent on the original layer
self.assertTrue(self.success)
self.assertFalse(self.fail)
self.assertTrue(os.path.exists(tmp))
示例2: testTaskFromFunctionWithSubTaskCompletedIsCalledOnce
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import taskManager [as 别名]
def testTaskFromFunctionWithSubTaskCompletedIsCalledOnce(self): # spellok
""" test that when a parent task has subtasks it does emit taskCompleted only once"""
self.finished = 0
self.completed = 0
def _on_finished(e):
self.finished += 1
def _on_completed():
self.completed += 1
task = QgsTask.fromFunction('test task', run_no_result, on_finished=_on_finished)
task.taskCompleted.connect(_on_completed)
spy = QSignalSpy(task.taskCompleted)
sub_task_1 = QgsTask.fromFunction('test subtask 1', run_no_result, on_finished=_on_finished)
sub_task_2 = QgsTask.fromFunction('test subtask 2', run_no_result, on_finished=_on_finished)
task.addSubTask(sub_task_1, [], QgsTask.ParentDependsOnSubTask)
task.addSubTask(sub_task_2, [], QgsTask.ParentDependsOnSubTask)
QgsApplication.taskManager().addTask(task)
while task.status() not in [QgsTask.Complete, QgsTask.Terminated]:
QCoreApplication.processEvents()
while QgsApplication.taskManager().countActiveTasks() > 0:
QCoreApplication.processEvents()
self.assertEqual(self.completed, 1)
self.assertEqual(self.finished, 3)
self.assertEqual(len(spy), 1)
示例3: testTaskFromFunctionWithKwargs
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import taskManager [as 别名]
def testTaskFromFunctionWithKwargs(self):
""" test creating task from function using kwargs """
task = QgsTask.fromFunction('test task3', run_with_kwargs, result=5, password=1)
QgsApplication.taskManager().addTask(task)
while task.status() not in [QgsTask.Complete, QgsTask.Terminated]:
pass
self.assertEqual(task.returned_values, 5)
self.assertFalse(task.exception)
self.assertEqual(task.status(), QgsTask.Complete)
示例4: test
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import taskManager [as 别名]
def test(self):
l1 = QgsVectorLayer(os.path.join(self.testDataDir, "france_parts.shp"), "françéà", "ogr", QgsVectorLayer.LayerOptions(False))
self.assertEqual(l1.isValid(), True)
QgsProject.instance().addMapLayer(l1)
df = QgsVirtualLayerDefinition()
df.setQuery('select * from "françéà"')
self.task = QgsVirtualLayerTask(df)
ids = [f.id() for f in self.task.layer().getFeatures()]
self.assertEqual(len(ids), 0)
self.task.taskCompleted.connect(self.onSuccess)
self.task.taskTerminated.connect(self.onFail)
QgsApplication.taskManager().addTask(self.task)
while not self._success and not self._fail:
QCoreApplication.processEvents()
self.assertTrue(self._success)
self.assertFalse(self._fail)
self.assertEqual(len(self.ids), 4)
# Test exception
self._success = False
self._fail = False
df.setQuery('select *')
self.task = QgsVirtualLayerTask(df)
self.task.taskCompleted.connect(self.onSuccess)
self.task.taskTerminated.connect(self.onFail)
QgsApplication.taskManager().addTask(self.task)
while not self._success and not self._fail:
QCoreApplication.processEvents()
self.assertFalse(self._success)
self.assertTrue(self._fail)
self.assertEqual(self._exceptionText, 'Query preparation error on PRAGMA table_info(_tview): no tables specified', self._exceptionText)
示例5: testTaskFromFunctionFinished
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import taskManager [as 别名]
def testTaskFromFunctionFinished(self):
""" test that task from function can have callback finished function"""
task = QgsTask.fromFunction('test task', run_no_result, on_finished=finished_no_val)
QgsApplication.taskManager().addTask(task)
while task.status() not in [QgsTask.Complete, QgsTask.Terminated]:
pass
while QgsApplication.taskManager().countActiveTasks() > 0:
QCoreApplication.processEvents()
# check that the finished function was called
self.assertFalse(task.returned_values)
self.assertFalse(task.exception)
self.assertTrue(finished_no_val.called)
示例6: testFetchBadUrl
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import taskManager [as 别名]
def testFetchBadUrl(self):
fetcher = QgsNetworkContentFetcherTask(QUrl('http://x'))
self.loaded = False
def check_reply():
r = fetcher.reply()
assert r.error() != QNetworkReply.NoError
self.loaded = True
fetcher.fetched.connect(check_reply)
QgsApplication.taskManager().addTask(fetcher)
while not self.loaded:
app.processEvents()
示例7: testTaskFromFunctionFinishedFail
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import taskManager [as 别名]
def testTaskFromFunctionFinishedFail(self):
""" test that task from function which fails calls finished with exception"""
task = QgsTask.fromFunction('test task', run_fail, on_finished=finished_fail)
QgsApplication.taskManager().addTask(task)
while task.status() not in [QgsTask.Complete, QgsTask.Terminated]:
pass
while QgsApplication.taskManager().countActiveTasks() > 0:
QCoreApplication.processEvents()
# check that the finished function was called
self.assertTrue(task.exception)
self.assertTrue(finished_fail.finished_exception)
self.assertEqual(task.exception, finished_fail.finished_exception)
示例8: testTaskFromFunctionFinishedWithVal
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import taskManager [as 别名]
def testTaskFromFunctionFinishedWithVal(self):
""" test that task from function can have callback finished function and is passed result values"""
task = QgsTask.fromFunction('test task', run_single_val_result, on_finished=finished_single_value_result)
QgsApplication.taskManager().addTask(task)
while task.status() not in [QgsTask.Complete, QgsTask.Terminated]:
pass
while QgsApplication.taskManager().countActiveTasks() > 0:
QCoreApplication.processEvents()
# check that the finished function was called
self.assertEqual(task.returned_values, (5))
self.assertFalse(task.exception)
self.assertEqual(finished_single_value_result.value, 5)
示例9: testNoLayer
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import taskManager [as 别名]
def testNoLayer(self):
"""test that failure (and not crash) occurs when no layer set"""
options = QgsVectorFileWriter.SaveVectorOptions()
tmp = create_temp_filename('fail.shp')
task = QgsVectorFileWriterTask(None, tmp, options)
task.writeComplete.connect(self.onSuccess)
task.errorOccurred.connect(self.onFail)
QgsApplication.taskManager().addTask(task)
while not self.success and not self.fail:
QCoreApplication.processEvents()
self.assertFalse(self.success)
self.assertTrue(self.fail)
示例10: testTaskFromFunctionIsCancellable
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import taskManager [as 别名]
def testTaskFromFunctionIsCancellable(self):
""" test that task from function can check canceled status """
bad_task = QgsTask.fromFunction('test task4', cancellable)
QgsApplication.taskManager().addTask(bad_task)
while bad_task.status() != QgsTask.Running:
pass
bad_task.cancel()
while bad_task.status() == QgsTask.Running:
pass
while QgsApplication.taskManager().countActiveTasks() > 0:
QCoreApplication.processEvents()
self.assertEqual(bad_task.status(), QgsTask.Terminated)
self.assertTrue(bad_task.exception)
示例11: testTaskFromFunctionCanceledWhileQueued
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import taskManager [as 别名]
def testTaskFromFunctionCanceledWhileQueued(self):
""" test that task from finished is called with exception when task is terminated while queued"""
task = QgsTask.fromFunction('test task', run_no_result, on_finished=finished_fail)
task.hold()
QgsApplication.taskManager().addTask(task)
task.cancel()
while task.status() not in [QgsTask.Complete, QgsTask.Terminated]:
pass
while QgsApplication.taskManager().countActiveTasks() > 0:
QCoreApplication.processEvents()
# check that the finished function was called
self.assertTrue(task.exception)
self.assertTrue(finished_fail.finished_exception)
self.assertEqual(task.exception, finished_fail.finished_exception)
示例12: testSuccess
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import taskManager [as 别名]
def testSuccess(self):
"""test successfully writing a layer"""
self.layer = self.createLayer()
options = QgsVectorFileWriter.SaveVectorOptions()
tmp = create_temp_filename('successlayer.shp')
task = QgsVectorFileWriterTask(self.layer, tmp, options)
task.writeComplete.connect(self.onSuccess)
task.errorOccurred.connect(self.onFail)
QgsApplication.taskManager().addTask(task)
while not self.success and not self.fail:
QCoreApplication.processEvents()
self.assertTrue(self.success)
self.assertFalse(self.fail)
示例13: testFetchUrlContent
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import taskManager [as 别名]
def testFetchUrlContent(self):
fetcher = QgsNetworkContentFetcherTask(
QUrl('http://localhost:' + str(self.port) + '/qgis_local_server/index.html'))
self.loaded = False
def check_reply():
r = fetcher.reply()
assert r.error() == QNetworkReply.NoError, r.error()
assert b'QGIS' in r.readAll()
self.loaded = True
fetcher.fetched.connect(check_reply)
QgsApplication.taskManager().addTask(fetcher)
while not self.loaded:
app.processEvents()
示例14: testTaskFromFunctionCanSetProgress
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import taskManager [as 别名]
def testTaskFromFunctionCanSetProgress(self):
""" test that task from function can set progress """
task = QgsTask.fromFunction('test task5', progress_function)
QgsApplication.taskManager().addTask(task)
while task.status() != QgsTask.Running:
pass
# wait a fraction so that setProgress gets a chance to be called
sleep(0.001)
self.assertEqual(task.progress(), 50)
self.assertFalse(task.exception)
task.cancel()
while task.status() == QgsTask.Running:
pass
while QgsApplication.taskManager().countActiveTasks() > 0:
QCoreApplication.processEvents()
示例15: __init__
# 需要导入模块: from qgis.core import QgsApplication [as 别名]
# 或者: from qgis.core.QgsApplication import taskManager [as 别名]
def __init__(self, iface, dockWidgetGui):
def createDirectories():
dirPlugin = os.path.dirname(__file__)
dirImage = os.path.join( dirPlugin, 'img' )
if not os.path.isdir( dirImage ):
os.mkdir( dirImage )
dirLayer = os.path.join( dirPlugin, 'db' )
if not os.path.isdir( dirLayer ):
os.mkdir( dirLayer )
return { 'image': dirImage, 'gpkg': dirLayer }
def getDefinitionLayerPolygon(dirLayer):
def getFields():
atts = [
{ 'name': 'id_add', 'type': QVariant.Int },
{ 'name': 'total_imgs', 'type':QVariant.Int },
{ 'name': 'images', 'type': QVariant.String, 'len': 254 },
{ 'name': 'user', 'type': QVariant.String, 'len': 20 },
{ 'name': 'date_add', 'type': QVariant.String, 'len': 20 },
{ 'name': 'crs_map', 'type': QVariant.String, 'len': 50 },
{ 'name': 'extent_map', 'type': QVariant.String, 'len': 200 },
{ 'name': 'annotation', 'type': QVariant.String, 'len': 100 }
]
fields = QgsFields()
for att in atts:
f = QgsField( att['name'], att['type'] )
if 'len' in att:
f.setLength( att['len'])
fields.append( f )
return fields
return {
'fileName': os.path.join( dirLayer, 'gimp_selection.gpkg' ),
'fields': getFields(),
'geometryType': QgsWkbTypes.PolygonGeometry,
'crs': QgsCoordinateReferenceSystem('EPSG:4326')
}
super().__init__()
self.dockWidgetGui = dockWidgetGui
self.layerPolygon, self.isIniEditable = None, None
self.worker = WorkerTaskGimpSelectionFeature()
self.layerImages = []
self.socket, self.hasConnect = None, None
self.canvas, self.msgBar = iface.mapCanvas(), iface.messageBar()
self.project = QgsProject.instance()
self.mapCanvasEffects = MapCanvasEffects()
self.taskManager = QgsApplication.taskManager()
self.root = self.project.layerTreeRoot()
dirs = createDirectories()
self.pathfileImage = os.path.join( dirs['image'], 'tmp_gimp-plugin.tif' )
self.pathfileImageSelect = os.path.join( dirs['image'], 'tmp_gimp-plugin_sel.tif' )
self.defLayerPolygon = getDefinitionLayerPolygon( dirs['gpkg'] )
self.featureAdd = None
self._connect()
self.setEnabledWidgetTransfer( False )