Második beadandó feladatok 2016

A feladat két widget létrehozása, egy számbeállító és egy kiválasztó widget.

A leadási határidő: 2016 ápr. 30, reggel 8 óra.

A választási lehetőség az egyes widgetek megjelenítésében és működésében van.

1. számbeállító widget

  • 1.a. számot ábrázoló kijelző, mellette egy növelő és egy csökkentő gomb.
  • 1.b. húzható kapcsoló, a két szélén egyesével léptető gombokkal
  • 1.c. számjegyenként egy-egy növelő és csökkentő gomb
  • 1.d. tetszőleges egyéb, előre megbeszélt vizualizáció, ami nem kizárólag billentyűzetről olvas számjegyeket
  • 2. kiválasztó widget

  • 2.a. menü, a kiválasztott elem más (háttér)színű (a képen a felső esetet kell megoldani, ahol csak egy elem lehet kiválasztva)
  • 2.b. legördülő menü, a kiválaszott elem látszik csak, egérgombra legördül egy menü, a kiválasztás után a menü eltűnik, és a kiválasztott elem veszi át a helyet. Valamivel jelezni kell a legördítés lehetőségét (általában lefelé mutató háromszög)
  • 2.c. a kiválasztott elem látszik csak, egér fölévitelekor megjelenik az előző/következő két-három lehetőség függőlegesen, ami az egérgörgővel görgethető. ( ilyesmi, csak ennyire nem kell animálni)
  • 2.d. tetszőleges egyéb, előre megbeszélt vizualizáció
  • Közös követelmények:

  • A beadandónak tartalmaznia kell a widgeteket, egy őswidget osztályt, egy tesztelő main.cpp programocskát, ami a képernyőre teszi a widgetek két-két példányát, és egy billentyű nyomására (eseményciklusban közvetlenül is szabad elkapni) az aktuálisan beállított értékeket ellenőrzésképpen fájlba írja úgy, hogy a kiírás nem az őswidgeten keresztül történik
  • a tesztprogramnak, vagy a könyvtárnak a része az a mechanizmus, amelyik egyszerre kezel tetszőleges számú ilyen widgetet, kihasználva a polimorfizmust
  • a számbeállító widgetnek intervallumot lehet adni konstruktorban, amiből nem enged kimenni, a példakét mutatott két widgetnek legyen más-más intervalluma.
  • a számbeállító widgeteknek kezelniük kell a le-föl és pageup-pagedown billentyűket.
  • a kiválasztó widget vector<string>-a paraméterrel hozható létre, és van metódusa új választási lehetőség felvételére. A sorrend tetszőleges a választási lehetőségek között.
  • a méretváltoztató widgetek kis és nagy méretét is meg lehessen adni
  • a kiválasztó widgetben görgetni kell a túl sok lehetőséget, ha nem fér el a választék a widgetnek megadott területen
  • az "egyéb" vizualizációs lehetőségeket a gyakorlatvezetővel egyeztetni kell
  • Emlékeztető: a későbbiekben ezt a komponenst újra és újra fel kell majd használnod, tehát nem érdemes kapkodni vagy összecsapni, mert akkor később meggyűlhet vele a bajod. Igyekezz olyan működési stratégiát kitalálni, amit a későbbiekben is szívesen használsz majd.