在PyQGIS中,可以使用三种方法在 QGIS 中生成警告并为用户生成消息:
-
Q消息框
-
Qgs消息日志
-
Qgs消息栏
弹出窗口 – QMessageBox
QMessageBox - 是一个在弹出窗口中启动消息的 Qt 类。用户必须接受消息才能关闭窗口:
消息可以是以下类型:
-
QMessageBox.information()
-
QMessageBox.warning()
-
QMessageBox.ritical()
区别在于显示的图标。
作为参数,它需要:parent、title、message。
Parent参数 指的是弹出消息将挂起的窗口,通常指定None或iface.mainWindow()。
例子:
from PyQt5.QtWidgets import QMessageBox
from qgis.core import QgsProject
layer=qgis.utils.iface.mapCanvas().currentLayer()
QMessageBox.information(iface.mainWindow(), "Active Layer", 'The active layer is ' +layer .yam())
日志消息 – QgsMessageLog
QgsMessageLog - 是一个 QGIS 类,它将消息写入QGIS的日志消息窗口。
要查看此窗口,必须在“视图\面板”菜单中激活“日志消息”选项卡。
当我们想要跟踪进程时,在此面板中记录消息非常有用。
作为参数,它需要:消息、选项卡标题、消息级别。
消息级别可以是 INFO、WARNING 或 CRITICAL。
例子:
from PyQt5.QtWidgets import QMessageBox
from qgis.core import QgsProject
layer=qgis.utils.iface.mapCanvas().currentLayer()
QgsMessageLog.logMessage('The active layer is ' +layer.name(),'Active Layer', Qgis .Warning)
消息栏 – QgsMessageBar
QgsMessageBar:是一个 QGIS 类,在地图画布顶部显示弹出消息栏。这是显示消息的优雅选项,无需进程中断或用户干预。
它们的类型可以是:信息、警告 和严重。 区别在于图标和栏的颜色:分别为蓝色、橙色和红色。
作为参数,它需要:标题、消息、消息类型、弹出时间。
例子:
from PyQt5.QtWidgets import QMessageBox from qgis.core import QgsProject from qgis.gui import QgsMessageBar layer=qgis.utils.iface.mapCanvas().currentLayer() iface.messageBar().pushMessage("Active Layer",'The active layer is ' +layer.name(), Qgis.Info,5)