pyqgis 打印日志

20 篇文章 7 订阅
16 篇文章 2 订阅
import os
from qgis.PyQt.QtWidgets import QAction,QMainWindow
from qgis.PyQt.QtCore import Qt
from qgis.PyQt.QtGui import QColor
from qgis.core import (
    QgsProject,
    QgsApplication,
    QgsPoint,
    QgsPointXY,
    QgsGeometry,
    QgsRectangle,
    QgsMessageLog,
    Qgis
)
from qgis.gui import(
    QgsMapCanvas,
    QgsRubberBand,
    QgsVertexMarker,
    QgsMessageLogViewer,
    QgsDockWidget
)
os.environ['GDAL_DATA'] = r'C:\OSGeo4W\share\gdal'
os.environ['PROJ_LIB'] = r'C:\OSGeo4W\share\proj'
# Supply path to qgis install location
QgsApplication.setPrefixPath(r"C:\OSGeo4W\apps\qgis-ltr", True)

# Create a reference to the QgsApplication.  Setting the
# second argument to False disables the GUI.
qgs = QgsApplication([], True)

# Load providers
qgs.initQgis()
# win
mainWindow=QMainWindow()
# gui
canvas = QgsMapCanvas()
mainWindow.setCentralWidget(canvas)
logView = QgsMessageLogViewer()
dWidget = QgsDockWidget()
dWidget.setWidget(logView)
mainWindow.addDockWidget(Qt.RightDockWidgetArea, dWidget)
mainWindow.show()
# log
QgsMessageLog.logMessage("message 101.", level=Qgis.Info)
QgsMessageLog.logMessage("message 101.", level=Qgis.Info)
QgsMessageLog.logMessage("message 102.", level=Qgis.Warning)
QgsMessageLog.logMessage("message 103.", level=Qgis.Critical)
# draw line
r = QgsRubberBand(canvas, False)  # False = not a polygon
r.setWidth(2)
r.setColor(QColor(255,0,0))
points = [QgsPoint(-100, 45), QgsPoint(10, 60), QgsPoint(120, 45)]
r.setToGeometry(QgsGeometry.fromPolyline(points), None)
QgsMessageLog.logMessage("draw red line", level=Qgis.Info)
# draw polygon
r = QgsRubberBand(canvas, True)
r.setColor(QColor(255,255,0))
points = [[QgsPointXY(110, 30), QgsPointXY(130, 45), QgsPointXY(130, 20)]]
r.setToGeometry(QgsGeometry.fromPolygonXY(points), None)
QgsMessageLog.logMessage("draw yellow polygon", level=Qgis.Info)
# draw marker
m = QgsVertexMarker(canvas)
m.setCenter(QgsPointXY(129.5, 39.0))
m.setColor(QColor(0, 255, 0))
m.setIconSize(5)
m.setIconType(QgsVertexMarker.ICON_BOX)
m.setPenWidth(3)
QgsMessageLog.logMessage("draw green marker", level=Qgis.Info)
# refresh
canvas.setExtent(QgsRectangle(-200,0, 200,100))
exitCode = qgs.exec()
qgs.exitQgis()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值