本文整理汇总了Python中qgis.gui.QgsMessageBar.popWidget方法的典型用法代码示例。如果您正苦于以下问题:Python QgsMessageBar.popWidget方法的具体用法?Python QgsMessageBar.popWidget怎么用?Python QgsMessageBar.popWidget使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.gui.QgsMessageBar
的用法示例。
在下文中一共展示了QgsMessageBar.popWidget方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: BackupedImgUploaderWizard
# 需要导入模块: from qgis.gui import QgsMessageBar [as 别名]
# 或者: from qgis.gui.QgsMessageBar import popWidget [as 别名]
#.........这里部分代码省略.........
level=QgsMessageLog.INFO)
# Convert file format
if not (imghdr.what(filename) == 'tiff'):
filename = self.convert(filename)
QgsMessageLog.logMessage(
'Converted file to tiff: %s' % filename,
'OAM',
level=QgsMessageLog.INFO)
# create a new uploader instance
uploader = Uploader(filename,self.bucket,self.upload_options)
QgsMessageLog.logMessage(
'Uploader started\n',
'OAM',
level=QgsMessageLog.INFO)
# configure the QgsMessageBar
messageBar = self.bar2.createMessage('INFO: Performing upload...', )
progressBar = QProgressBar()
progressBar.setAlignment(Qt.AlignLeft|Qt.AlignVCenter)
messageBar.layout().addWidget(progressBar)
cancelButton = QPushButton()
cancelButton.setText('Cancel')
cancelButton.clicked.connect(self.cancelUpload)
messageBar.layout().addWidget(cancelButton)
self.bar2.clearWidgets()
self.bar2.pushWidget(messageBar, level=QgsMessageBar.INFO)
self.messageBar = messageBar
# start the worker in a new thread
thread = QThread(self)
uploader.moveToThread(thread)
uploader.finished.connect(self.uploaderFinished)
uploader.error.connect(self.uploaderError)
uploader.progress.connect(progressBar.setValue)
thread.started.connect(uploader.run)
thread.start()
self.thread = thread
self.uploader = uploader
else:
QgsMessageLog.logMessage(
'No connection to the server\n',
'OAM',
level=QgsMessageLog.CRITICAL)
def cancelUpload(self):
self.uploader.kill()
self.bar2.clearWidgets()
self.bar2.pushMessage(
'WARNING',
'Canceling upload...',
level=QgsMessageBar.WARNING)
def uploaderFinished(self, success):
# clean up the uploader and thread
try:
self.uploader.deleteLater()
except:
QgsMessageLog.logMessage(
'Exception on deleting uploader\n',
'OAM',
level=QgsMessageLog.CRITICAL)
self.thread.quit()
self.thread.wait()
try:
self.thread.deleteLater()
except:
QgsMessageLog.logMessage(
'Exception on deleting thread\n',
'OAM',
level=QgsMessageLog.CRITICAL)
# remove widget from message bar
self.bar2.popWidget(self.messageBar)
if success:
# report the result
self.bar2.clearWidgets()
self.bar2.pushMessage(
'INFO',
'Upload completed with success',
level=QgsMessageBar.INFO)
QgsMessageLog.logMessage(
'Upload succeeded',
'OAM',
level=QgsMessageLog.INFO)
else:
# notify the user that something went wrong
self.bar2.pushMessage(
'CRITICAL',
'Upload was interrupted',
level=QgsMessageBar.CRITICAL)
QgsMessageLog.logMessage(
'Upload was interrupted',
'OAM',
level=QgsMessageLog.CRITICAL)
def uploaderError(self, e, exception_string):
QgsMessageLog.logMessage(
'Uploader thread raised an exception:\n'.format(exception_string),
'OAM',
level=QgsMessageLog.CRITICAL)