ログの出力
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を編集
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()
以上の編集を終了したらQGIS再起動で動作確認(makeは不要)
pyQt4の頃はself.btnTestではなくself.ui.btnTestだったような
スロットの前には@pyqtSlot()を付けたような
レイヤの一覧を出力
ボタンが押されたらレイヤの一覧をログに出力
def pushButton(self): for layer in QgsProject.instance().mapLayers().values(): QgsMessageLog.logMessage(layer.name(), 'test plugin', Qgis.Info)