Deklaration af plugin-klasse

Nu da vi er færdige med det indledende arbejde, lad os begynde med den morsomme del - at lave en klasse der vil sørge for den opførsel vi ønsker. Mens vi er fire til at få denne klasse til at gøre næsten hvadsomhelst vi ønsker den skal gøre, er der nogle få begrænsninger.

  1. Plugin-klasser skal arve ThemeEngine-klassen.

  2. Plugin-klasser skal navngives efter reglen: Tema+PluginNavn.

  3. Plugin-klasser skal sørge for en statisk funktion der hedder names der returnerer en liste af navne ved hvilke de kan startes.

  4. Hvis dit plugin kan indstilles i kontrolcenter-modulet, skal det sørge for en ThemeEngineConfig-baseret klasse for indstillingen.

  5. Plugin-klasser skal gå forud for mindst en af de virtuelle funktioner slotSetText, slotSetPixmap, slotUpdateProgress og slotUpdateSteps for at være brugbare.

  6. Konstruktøren skal være på formen ThemeEngine( QWidget *parent, const char *name, const QStringList &args ) så den kan bruges med KGenericFactory.

Det sidste krav synes måske kompliceret, men, som vi skal se senere, du kan sædvanligvis ignorere det ved at tilføje en enkelt linje til din kildefil.