1 . Verwenden Sie den Plugin Builder , um ein neues Plugin zu erstellen
Die erstellten Dateien sind im folgenden Bild dargestellt
2 . Konvertieren Sie die Ressourcen - Datei ( resources.qrc ) zu Python - Datei ( resources.py ) unter Verwendung der OSGeo4W Shell
pyrcc4 -o resources_rc.py resources.qrc
Wenn Sie danach in den Plugin-Ordner schauen , werden Sie eine neue .py-Datei bemerken , die Datei resources.py , die gerade erstellt wurde. Das Plugin kann jetzt über das QGIS-Hauptmenü> Plugins verwalten und installieren installiert und geöffnet werden.
3 . WIE ERSTELLEN SIE DIE WERKZEUGLEISTE UND DIE WERKZEUGE (Knöpfe) UND FÜGEN SIE DIE WERKZEUGE AUF DIE WERKZEUGLEISTE?
Öffnen Sie mit einem Editor die Datei my_toolbar.py und schreiben Sie im Abschnitt des 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())
Auf diese Weise wurden drei Schaltflächen / Werkzeuge erstellt.
Schreiben Sie Folgendes, damit die Schaltflächen in der Symbolleiste angezeigt werden:
self.toolBar.addAction(self.act1)
self.toolBar.addAction(self.act2)
self.toolBar.addAction(self.act3)
Damit die Schaltflächen beim Klicken zum Öffnen einer GUI angeklickt werden, schreiben Sie Folgendes:
QObject.connect(self.act1, SIGNAL("triggered()"), self.runtool1)
QObject.connect(self.act2, SIGNAL("triggered()"), self.runtool2)
QObject.connect(self.act3, SIGNAL("triggered()"), self.runtool3)
Die Methoden runtool1 , runtool2 und runtool3 werden später wie folgt definiert, um für jede Schaltfläche eine andere Benutzeroberfläche zu öffnen
def runtool1(self):
self.dlgtool1.show()
def runtool2(self):
self.dlgtool2.show()
def runtool3(self):
self.dlgtool3.show()
Auf diese Weise wird beim Klicken auf die Schaltfläche tool1 die Benutzeroberfläche geöffnet. Wenn auf die Schaltfläche tool2 geklickt wird, wird die Schaltfläche dlgtool2 geöffnet, und wenn auf die Schaltfläche tool3 geklickt wird, wird die Benutzeroberfläche dlgtool3 geöffnet.
dlgtool1 , dlgtool2 und dlgtool3 sollten Variablen sein, die auf die UI-Dateien zeigen, die die Dialoge darstellen .
Die Dialoge müssen also sein:
erstellt ,
in die Haupt-py-Datei ( my_toolbar.py ) importiert und
Variablen ( dlgtool1 , dlgtool2 und dlgtool3 ) zugewiesen, um eine Instanz von ihnen zu erhalten.
So erstellen Sie die Dialoge :
- Kopieren Sie die Dateien my_toolbar_dialog.py und my_toolbar_dialog_base.ui
und fügen Sie sie in einen anderen Ordner ein, damit Sie sie umbenennen können. Tun Sie dies so oft wie nötig, in diesem Beispiel dreimal.
Kopieren Sie dann diese neuen Dateien und fügen Sie sie wieder in den Ordner Myplugintoolbar ein
Öffnen Sie Form_dlgtool1_dialog.py mit einem Editor, um die folgenden Änderungen zu übernehmen:
Von :
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)
Wechseln zu :
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)
Gehen Sie für die beiden anderen Dateien genauso vor ( Form_dlgtool2_dialog.py und Form_dlgtool3_dialog.py ).
Dann , um die Dialoge in die Hauptdatei zu importieren , öffnen my_toolbar.py Datei mit dem Editor und importieren Sie die folgende
from Form_dlgtool1_dialog import Formdlgtool1Dialog
from Form_dlgtool2_dialog import Formdlgtool2Dialog
from Form_dlgtool3_dialog import Formdlgtool3Dialog
Schließlich , um eine Instanz von ihnen zu erhalten , schreiben Sie die folgenden in der def __init __ (self, iface) Abschnitt:
self.dlgtool1 = Formdlgtool1Dialog()
self.dlgtool2 = Formdlgtool2Dialog()
self.dlgtool3 = Formdlgtool3Dialog()
Jetzt können Sie die UI-Dateien im QtDesigner öffnen und anpassen. Laden Sie dann die Plugin-Symbolleiste in QGIS neu, um das folgende Ergebnis zu erhalten