ホーム » Python » QGIS3 plugin おさらい

QGIS3 plugin おさらい

ログの出力

from qgis.core import *

QgsMessageLog.logMessage(“__init__”, ‘test plugin’, Qgis.Info)

メッセージレベルの定数が変更

ダイアログのカスタマイズ

QT Creatorでtest_plugin_dialog_base.uiを開きボタン「btnTest」を追加

通常はQT Creator上でbtnTestのシグナルとスロットの設定を行う。

今回はプログラムで対応。

test_plugin_dialog.pyを編集
[code]
class TestPluginDialog(QtWidgets.QDialog, FORM_CLASS):
def __init__(self, parent=None):
"""Constructor."""
super(TestPluginDialog, self).__init__(parent)
# Set up the user interface from Designer.
# After setupUI you can access any designer object by doing
# self.<objectname>, and you can use autoconnect slots – see
# http://qt-project.org/doc/qt-4.8/designer-using-a-ui-file.html
# #widgets-and-dialogs-with-auto-connect
self.setupUi(self)
self.btnTest.clicked.connect(self.pushButton)

def pushButton(self):
self.close()
[/code]

以上の編集を終了したらQGIS再起動で動作確認(makeは不要)

pyQt4の頃はself.btnTestではなくself.ui.btnTestだったような

スロットの前には@pyqtSlot()を付けたような

レイヤの一覧を出力

ボタンが押されたらレイヤの一覧をログに出力
[code]
def pushButton(self):
for layer in QgsProject.instance().mapLayers().values():
QgsMessageLog.logMessage(layer.name(), ‘test plugin’, Qgis.Info)
[/code]