Menu
  • Hem
  • Dokument
  • Om Mig
Geosupportsystem

Plugin-layout med Qt Designer

Posted on 2017-09-26

I förra inlägget skapades en ”bas” för att utveckla ett eget plugin i QGIS. I denna del är det dags att göra vår dialogruta lite mer användbar.
För detta använder jag Qt Designer (Qt4 för QGIS 2.x). Det finns andra sätt att skapa gränssnittet på också. Allt från att använda andra miljöer för att redigera ”ui-filer” (om det finns några andra) eller generera pythonkod baserat på Qt ramverket på annat sätt, till att skriva pythonkoden manuellt. Att göra detta manuellt är dock ganska svårt och Qt Designer gör allt så fruktansvärt mycket enklare!
Skärmbild från 2017-09-17 15-22-48
I den katalog som skapades med Plugin Builder så finns det en ”my_plugin_dialog_base.ui” -fil. Denna öppnar jag med Qt Designer. Har du använt ett annat namn så leta bara efter den enda filen med ändelsen *.ui.
Jag kommer att skapa ett plugin där man väljer ett vektorlager från de som är inlästa i QGIS. Från detta väljer man sedan ett attribut, som man sedan får en lista genererad från som innehåller alla unika värden i en lista. Listan skall presenteras antingen i en kolumn, eller som en textsträng separerad med kommatecken.
Qt Designer är ett ganska enkelt verktyg att göra detta med. Till vänster finns tillgängliga komponenter och dessa är bara att dra in och släppa i dialogfönstret.
Skärmbild från 2017-09-17 15-36-45
Jag drar in två stycken ”Combo Box”, en ”Check Box” och en ”Plain Text Edit”. Om man vill snabbgranska dialogen så kan man köra ”ctrl – R”. När man ändrar storleken på dialogen i förhandsgranskningen så ser man snabbt att man har ett problem. Med Qt Designer är detta dock lätt att åtgärda. För en enkel dialog som det här så vill jag helt enkelt att alla element staplas ovanpå varandra, så jag kan applicera en ”Vertikal layout”. Detta kan man göra med en knapp (tre liggande linjer), via menyn eller med ”ctrl – 2”. Se bara till att dialogfönstret är valt och inte bara en enskild kontroll först.
Skärmbild från 2017-09-17 15-43-40
När du nu förhandsgranskar dialogen och ändrar storleken så kommer kontrollerna att följa med och ändra storlek för att anpassas till storleken.
Om dina kontroller har hamnat i en annan ordning så är det enkelt att flytta dessa genom att ta tag i dem och dra dem till rätt plats.
Innan jag avslutar designen så vill jag göra några justeringar. Exempelvis vill jag ge kontrollerna namn som jag kan använda i min kod senare. För varje kontroll så markerar jag den och går till egenskapspanelen där det står en ”egenskap” med namnet objectName. I värdefältet för denna egenskap skapar jag nya namn för mina kontroller:

  • combo_layer
  • combo_attribute
  • check_list
  • text_out

Dessutom så ändrar jag standardtexten för ”CheckBox” till ”Create comma separeted list”. Om jag skulle vilja att detta skulle vara förvalt så kan jag kika vidare bland egenskaperna för kontrollen och leta reda på checked och markera det fältet.
Det finns betydligt mycket mera man kan göra i Designer, men det hinner jag inte med den här gången. Spara dialogen och gå tillbaka till terminalen.
Från pluginkatalogen så ger man på nytt kommandot:

make deploy

Det är nu det är bra att använda verktyget ”Plugin Reloader”. Verktygets knapp har en undermeny där man först skall välja vilket plugin som skall läsas om. Om man inte väljer först så får man ett felmeddelande, men det är inte hela världen. Välj bara ”MyPlugin” och starta om detta igen.
Skärmbild från 2017-09-17 16-00-17
Nu kommer din nya dialog att visas i stället för den gamla när du klickar på din knapp…
I nästa del så blir det dags att skriva lite Pythonkod!
Tills dess kan du ju fundera på hur du kan göra för att byta ut ikonen på knappen till något roligare.

Lämna ett svar Avbryt svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Translate with Google

GBR In English
GER Auf Deutch
FRA En Français
ESP En Español
Swedish is a hard language for a machine to translate. Nuance and detail will likely be lost.
     

Bok om QGIS på Svenska

Bok

Beställ Boken/E-bok genom att klicka på bilden (även förhandsgranskning).

Senaste kommentarer

  • Gabriel om Punktmoln i QGIS 3.18
  • klakar om Punktmoln i QGIS 3.18
  • Gabriel om Punktmoln i QGIS 3.18
  • Hector Garrido om QGIS LTR vs LTR
  • Christian om Stildelning för QGIS

Arkiv

Prenumerera på Geosupportsystem

Skriv in namn och epost för att prenumerera på meddelanden från denna blogg.
Loading

geosupport

Ooops. Tryckte nog för många gånger på bestäl Ooops. Tryckte nog för många gånger på beställ-knappen...
GoPro foton (många), WebODM och sedan bearbetning GoPro foton (många), WebODM och sedan bearbetning i CloudCompare. Här en skärmdump med QGIS 3D.
Nu är ja såväl "dröraroperatör" som certifier Nu är ja såväl "dröraroperatör" som certifierad "drönarpilot". Nu är det bara kvar att märka och uppdatera alla farkoster.
Ladda mer...

Meta

  • Logga in
  • Flöde för inlägg
  • Flöde för kommentarer
  • WordPress.org
©2021 Geosupportsystem | WordPress Theme by Superbthemes.com