Dzień dobry,
Obecnie zajmuje się tworzeniem wtyczki do wczytywania innych wtyczek.
Mam napisane 5 skryptów, ale szef chce by był wspólny instalator- klik i pojawia się 5 nowych opcji na pasku zadań oraz w zakładce wtyczki> zarządzanie wtyczkami > Zainstalowanie.
Napisany z chatem kod wygląda tak (tylkof funkcja def run):
def run(self):
“”“Run method that performs all the real work”“”
#plugin_folder = QgsApplication.qgisSettingsDirPath() + “python/plugins/”
plugin_folder = os.path.join(
os.path.expanduser(“~”),
“AppData”,
“Roaming”,
“QGIS”,
“QGIS3”,
“profiles”,
“default”,
“python”,
“plugins”
)
zip_files= [… r" <<# tablica ścieżek do pięciu skryptów>>.zip"
]
installed = 0
for zip_path in zip_files:
#plugin_name = os.path.splitext(os.path.basename(zip_path))[0]
#target = os.path.join(plugin_folder, plugin_name)
with zipfile.ZipFile(zip_path, 'r') as zip_ref:
members = zip_ref.namelist()
# Nazwa głównego katalogu wtyczki
plugin_name = members[0].split('/')[0]
target = os.path.join(
plugin_folder,
plugin_name
)
print("Instaluję:", plugin_name)
print("Do:", target)
# Usuń starą wersję
if os.path.exists(target):
shutil.rmtree(target)
# Rozpakuj
zip_ref.extractall(plugin_folder)
installed += 1
print(installed)
QMessageBox.information(
self.iface.mainWindow(),
"Instalacja",
f"Zainstalowano {installed} wtyczek."
)
Lecz jej działanie powoduje tylko rozpakowanie i przeniesienie wtyczek do folderu programu QGIS, a sam program ich nie czyta-> nie pojawiają się na liście.
Nie wiem jak sformować problem pod kątem promptu do AI-> Co i jak sprawić by QGIS widział te wtyczki zainstalowane w programie.
Z góry dziękuje za każdą pomoc!