1。使用プラグインビルダー新しいプラグインを作成します
作成されたファイルは次の図に示されています
2。OSGeo4Wシェルを使用して、リソースファイル(resources.qrc)をPythonファイル(resources.py)に変換します。
pyrcc4 -o resources_rc.py resources.qrc
あなたがあればその後、プラグインフォルダ内に見て、あなたは新しい気づくの.pyファイル、resources.pyばかりに作成されたファイルを。これで、メインのQGISメニュー> [プラグインの管理とインストール]からプラグインをインストールして開くことができます。
3。ツールバーとツール(ボタン)を作成し、ツールバーにツールを追加する方法
エディターでmy_toolbar.pyファイルを開き、initGui(self)のセクションに次のように書き込みます。
def initGui(self):
self.toolBar = self.iface.addToolBar("MY TOOLBAR tools")
self.toolBar.setObjectName("MY TOOLBAR tools")
self.act1 = QAction(QIcon(":/plugins/Myplugintoolbar/icon.png"), QCoreApplication.translate("IMPRESStoolbar", "Tool1"), self.iface.mainWindow())
self.act2 = QAction(QIcon(":/plugins/Myplugintoolbar/icon.png"), QCoreApplication.translate("IMPRESStoolbar", "Tool2"), self.iface.mainWindow())
self.act3 = QAction(QIcon(":/plugins/Myplugintoolbar/icon.png"), QCoreApplication.translate("IMPRESStoolbar", "Tool3"), self.iface.mainWindow())
このようにして、3つのボタン/ツールが作成されました。
ボタンをツールバーに表示するには、次のように記述し続けます。
self.toolBar.addAction(self.act1)
self.toolBar.addAction(self.act2)
self.toolBar.addAction(self.act3)
ボタンをクリックしてGUIを開くには、次のように書き続けます。
QObject.connect(self.act1, SIGNAL("triggered()"), self.runtool1)
QObject.connect(self.act2, SIGNAL("triggered()"), self.runtool2)
QObject.connect(self.act3, SIGNAL("triggered()"), self.runtool3)
runtool1、runtool2、runtool3の各メソッドは、ボタンごとに異なるGUIを開くために、以下のように定義されています
def runtool1(self):
self.dlgtool1.show()
def runtool2(self):
self.dlgtool2.show()
def runtool3(self):
self.dlgtool3.show()
このようにして、tool1ボタンをクリックするとgui dlgtool1が開き、tool2ボタンをクリックするとdlgtool2が開き、tool3ボタンをクリックするとdlgtool3 guiが開きます。
dlgtool1、dlgtool2、dlgtool3は、ダイアログを表すuiファイルを指す変数である必要があります。
したがって、ダイアログは次のようにする必要があります。
ダイアログを作成するには:
- ファイルmy_toolbar_dialog.pyおよびmy_toolbar_dialog_base.ui
をコピーし、別のフォルダに貼り付けて、名前を変更できるようにします。この例では3回、必要なだけこれを実行します。
次に、これらの新しいファイルをコピーして、Myplugintoolbarフォルダーに貼り付けます。
以下の変更を適用するために、エディターでForm_dlgtool1_dialog.pyを開きます。
から:
import os
from PyQt4 import QtGui, uic
FORM_CLASS, _ = uic.loadUiType(os.path.join(
os.path.dirname(__file__), 'my_toolbar_dialog_base.ui'))
class MyplugintoolbarDialog(QtGui.QDialog, FORM_CLASS):
def __init__(self, parent=None):
super(MyplugintoolbarDialog, self).__init__(parent)
self.setupUi(self)
に変更:
import os
from PyQt4 import QtGui, uic
FORM_CLASS, _ = uic.loadUiType(os.path.join(
os.path.dirname(__file__), 'Form_dlgtool1.ui'))
class Formdlgtool1Dialog(QtGui.QDialog, FORM_CLASS):
def __init__(self, parent=None):
super(Formdlgtool1Dialog, self).__init__(parent)
self.setupUi(self)
他の2つのファイル(Form_dlgtool2_dialog.pyおよびForm_dlgtool3_dialog.py)についても同じ手順に従います。
次に、ダイアログをメインファイルにインポートするために、エディターでmy_toolbar.pyファイルを開き、以下をインポートします。
from Form_dlgtool1_dialog import Formdlgtool1Dialog
from Form_dlgtool2_dialog import Formdlgtool2Dialog
from Form_dlgtool3_dialog import Formdlgtool3Dialog
最後に、それらのインスタンスを取得するために、def __init __(self、iface)セクション内に次のように記述します。
self.dlgtool1 = Formdlgtool1Dialog()
self.dlgtool2 = Formdlgtool2Dialog()
self.dlgtool3 = Formdlgtool3Dialog()
これで、QtDesignerでuiファイルを開いてカスタマイズできます。次に、QGIS内のプラグインツールバーをリロードして、次の結果を取得します