本文整理汇总了Python中qgis.PyQt.QtCore.QThread.deleteLater方法的典型用法代码示例。如果您正苦于以下问题:Python QThread.deleteLater方法的具体用法?Python QThread.deleteLater怎么用?Python QThread.deleteLater使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.PyQt.QtCore.QThread
的用法示例。
在下文中一共展示了QThread.deleteLater方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: ResourceSharingDialog
# 需要导入模块: from qgis.PyQt.QtCore import QThread [as 别名]
# 或者: from qgis.PyQt.QtCore.QThread import deleteLater [as 别名]
#.........这里部分代码省略.........
self.tr('%s') % e,
Qgis.Critical, 5)
self.progress_dialog.hide()
# Reload data and widget
self.reload_data_and_widget()
def install_collection(self):
"""Slot for when user clicks download button."""
self.show_progress_dialog('Starting installation process...')
self.progress_dialog.canceled.connect(self.install_canceled)
self.installer_thread = QThread()
self.installer_worker = CollectionInstaller(
self.collection_manager, self._selected_collection_id)
self.installer_worker.moveToThread(self.installer_thread)
self.installer_worker.finished.connect(self.install_finished)
self.installer_worker.aborted.connect(self.install_aborted)
self.installer_worker.progress.connect(self.install_progress)
self.installer_thread.started.connect(self.installer_worker.run)
self.installer_thread.start()
def install_finished(self):
# Process the result
self.progress_dialog.hide()
if self.installer_worker.install_status:
self.reload_collections_model()
message = '%s is installed successfully' % (
config.COLLECTIONS[self._selected_collection_id]['name'])
else:
message = self.installer_worker.error_message
QMessageBox.information(self, 'Resource Sharing', message)
# Clean up the worker and thread
self.installer_worker.deleteLater()
self.installer_thread.quit()
self.installer_thread.wait()
self.installer_thread.deleteLater()
def install_canceled(self):
self.progress_dialog.hide()
self.show_progress_dialog('Cancelling installation...')
self.installer_worker.abort()
def install_aborted(self):
if self.installer_thread.isRunning():
self.installer_thread.quit()
self.installer_thread.finished.connect(self.progress_dialog.hide)
def install_progress(self, text):
self.progress_dialog.setLabelText(text)
def uninstall_collection(self):
"""Slot called when user clicks uninstall button."""
try:
self.collection_manager.uninstall(self._selected_collection_id)
except Exception as e:
raise
self.reload_collections_model()
QMessageBox.information(
self,
'Resource Sharing',
'The collection is uninstalled succesfully!')
def open_collection(self):
"""Slot for when user clicks 'Open' button."""
collection_path = local_collection_path(self._selected_collection_id)
示例2: LocatePointsDialog
# 需要导入模块: from qgis.PyQt.QtCore import QThread [as 别名]
# 或者: from qgis.PyQt.QtCore.QThread import deleteLater [as 别名]
class LocatePointsDialog(QtWidgets.QDialog, FORM_CLASS):
"""Main dialog."""
def __init__(self, iface, parent=None):
super(LocatePointsDialog, self).__init__(parent)
self.setupUi(self)
self.iface = iface
self.in_combo.currentIndexChanged.connect(self.combo_changed)
self.out_lyr.textChanged.connect(self.line_edit_text_changed)
self.check_vertices.stateChanged.connect(self.checkbox_changed)
self.run_button.clicked.connect(self.on_start)
# Extra attributes
self.in_name = False
self.out_name = False
# Extra thread attributes
self.worker = None
self.thread = None
def on_start(self):
self.pbar.setRange(0, 0)
self.run_button.setEnabled(False)
self.close_button.setEnabled(False)
self.in_combo.setEnabled(False)
self.out_lyr.setEnabled(False)
self.offset.setEnabled(False)
self.interval.setEnabled(False)
self.check_attrs.setEnabled(False)
self.check_vertices.setEnabled(False)
self.check_endpoints.setEnabled(False)
inlyr = self.in_combo.itemData(self.in_combo.currentIndex())
outlyr = self.out_lyr.text()
offset = self.offset.value()
interval = self.interval.value()
keep_attrs = self.check_attrs.isChecked()
add_ver = self.check_vertices.isChecked()
add_end = self.check_endpoints.isChecked()
self.worker = Worker(inlyr, outlyr, offset, interval, keep_attrs, add_ver, add_end)
self.thread = QThread()
self.worker.moveToThread(self.thread)
self.worker.finished.connect(self.on_finished)
self.thread.started.connect(self.worker.run)
self.thread.start()
def on_finished(self, error):
vl = self.worker.vl
self.worker.deleteLater()
self.thread.quit()
self.thread.wait()
self.thread.deleteLater()
self.pbar.setRange(0, 10)
self.pbar.setValue(10)
self.run_button.setEnabled(True)
self.close_button.setEnabled(True)
self.in_combo.setEnabled(True)
self.out_lyr.setEnabled(True)
self.offset.setEnabled(True)
self.interval.setEnabled(True)
self.check_attrs.setEnabled(True)
self.check_vertices.setEnabled(True)
if self.check_vertices.isChecked() is False:
self.check_endpoints.setEnabled(True)
if error:
self.iface.messageBar().pushMessage('Failed to create points', '{}'.format(error), level=1)
else:
try:
QgsProject.instance().addMapLayer(vl)
except AttributeError:
QgsMapLayerRegistry.instance().addMapLayer(vl)
self.iface.messageBar().pushMessage('Calculations finished', 'Points successfully created!', level=0)
def combo_changed(self, idx):
if idx > 0:
crs = self.in_combo.itemData(self.in_combo.currentIndex()).crs()
units = QgsUnitTypes.toString(crs.mapUnits())
self.offset.setToolTip('Offset value ({})'.format(units))
self.interval.setToolTip('Interval value ({})'.format(units))
self.in_name = True
if self.out_name is True:
self.run_button.setEnabled(True)
else:
self.run_button.setEnabled(False)
else:
self.offset.setToolTip('')
self.interval.setToolTip('')
self.in_name = False
self.run_button.setEnabled(False)
def line_edit_text_changed(self, text):
if text:
self.out_name = True
if self.in_name is True:
self.run_button.setEnabled(True)
else:
self.run_button.setEnabled(False)
#.........这里部分代码省略.........