ELTE Informatikai Kar

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "ELTE Informatikai Kar"

Átírás

1 Qt SDI alkalmazás készítése II...2 Feladat...2 A dokumentum típus módosítása...2 A fejlécet ábrázoló mezők bevezetése...3 A bevezetett mezők lekérdező műveletei...3 A bevezetett mezők beállító slotjai...3 Az adatbeviteli mezők és az adattagok összekötése...4 Számlatételek kezelése...4 Az InvoiceItem osztály...5 Az InvoiceItem osztály definíciója és (!) implementációja...5 Számlatétel lista a dokumentumban...6 Új számlatétel felvitele...6 Új dialógusablak létrehozása...6 A dialógusablak felépítése...7 Új menüpont elhelyezése az alkalmazásban (Items/New)...8 Az itemsnew tevékenység és az azt kezelő slot definíciója...8 Az itemsnew tevékenység objektum létrehozása és inicializálása...9 Az itemsnew tevékenység elhelyezése a menüsorban...9 A slotitemsnew() implementálása...10 Új tétel beillesztése a számlába...11 Új tétel hozzáadása a dokumentumhoz (számlához)...11 Új számlatétel megjelenítése a nézet tétellistájában...12 Számlatétel módosítása...13 Számlatétel felismerése...14 Új sor típus bevezetése származtatással (ListViewInvoiceItem)...14 A ListViewInvoiceItem beágyazott osztály definíciója és implemetációja...15 Új menüpontok elhelyezése az alkalmazásban (Items/Edit; Items/Remove)...16 A itemsedit/itemsremove tevékenységek deklarációja...16 Az itemsedit/itemsremove tevékenység objektumok létrehozása és inicializálása...17 Az itemsedit/itemsremove tevékenységek elhelyezése a menüsorban...17 Az itemsedit slot implementációja (slotitemsedit() )...17 Az itemsremove slot implementációja (slotitemsremove())...19 Új műveletek a dokumentum osztályban (setmodified(), removeitem())...19 Ami még hátra van...19 Projekt összeállítása Qt parancsokkal...20 A projektet alkotó összetevők forrása letölthető a people.inf.elte.hu/nacsa címről. 1. oldal

2 "!$#&% ')(*% ')+,%.-/01(& #6#6: Ebben a munkafüzetben feltételezzük, hogy Ön már feldolgozta az SDI alkalmazás készítése Qt-ben I. munkafüzetet. Az előző munkafüzetben elkészítettünk egy SDI alkalmazást Qt-ben, továbbá a Qt Designer segítségével felépítettük a view osztály felhasználói felületét. ;=<>@?BAC?ED A számla típus (doc) és a hozzátartozó számlatétel típus megvalósítása A számla és a view összekötése Számlatétel felvitele, javítása, törlése Számla mentése, beolvasása FGA=HEIBJEKL<NM5DOJCKPDRQTSUJWV KYXEA=HWVZQODR[ZV\? Alkalmazásunk dokumentuma maga a számla, ezért az előző munkafüzetben elkészített általános dokumentum osztály módosításával készítjük el a számlát reprezentáló dokumentum típust. Ennek megfelelően a dokumentum osztály privát részébe felvesszük a számla fejlécébe tartozó mezőket, a publikus részben elhelyezzük e mezők értékeit lekérdező műveleteket, valamint a mezők értékeit beállító slotokat. 2. oldal

3 A fejlécet ábrázoló mezők bevezetése class InvoicerDoc : public QObject protected: bool modified; QString _customer; QString _zip; QString _city; QString _street; QString _invno; QString _released; QString _fulfilled; QString _dueto; ; A bevezetett mezők lekérdező műveletei class InvoicerDoc : public QObject Q_OBJECT public: bool ismodified() const; invoicerdoc.h invoicerdoc.h const QString customer() const return _customer; const QString zip() const return _zip; const QString city() const return _city; const QString street() const return _street; const QString invno() const return _invno; const QString released() const return _released; const QString fulfilled() const return _fulfilled; const QString dueto() const return _dueto; ; A bevezetett mezők beállító slotjai class InvoicerDoc : public QObject signals: void documentchanged(); public slots: void setcustomer(const QString &txt) _customer=txt; void setzip(const QString &txt) _zip=txt; void setcity(const QString &txt) _city=txt; void setstreet(const QString &txt) _street=txt; void setinvno(const QString &txt) _invno=txt; void setreleased(const QString &txt) _released=txt; void setfulfilled(const QString &txt) _fulfilled=txt; void setdueto(const QString &txt) _dueto=txt; ; invoicerdoc.h 3. oldal

4 ]^ _\^ _a`c_ebbr_rtscnvuxwwqzq\^memnawfboomqwe=y A view osztályban megvalósított számla fejlécében szereplő adatbeviteli mezőket hozzákötjük a dokumentum megfelelő adattagjaihoz. Ehhez a signal/slot mechanizmust használjuk. Az összekötéseket a view osztály konstruktorában helyezzük el. #include <qlineedit.h> InvoicerView::InvoicerView(QWidget *parent, InvoicerDoc *doc) : InvoicerViewBase(parent) connect(doc, SIGNAL(documentChanged()), this, SLOT(slotDocumentChanged())); connect(customer, SIGNAL(textChanged(const QString&)), doc, SLOT(setCustomer(const QString&))); connect(zip, SIGNAL(textChanged(const QString&)), doc, SLOT(setZip(const QString&))); connect(city, SIGNAL(textChanged(const QString&)), doc, SLOT(setCity(const QString&))); connect(street, SIGNAL(textChanged(const QString&)), doc, SLOT(setStreet(const QString&))); connect(invno, SIGNAL(textChanged(const QString&)), doc, SLOT(setInvNo(const QString&))); connect(released, SIGNAL(textChanged(const QString&)), doc, SLOT(setReleased(const QString&))); connect(fulfilled, SIGNAL(textChanged(const QString&)), doc, SLOT(setFulfilled(const QString&))); connect(dueto, SIGNAL(textChanged(const QString&)), doc, SLOT(setDueTo(const QString&))); z ^ Bkj~_EbOoBbOemjdeNn nae^memjdomqwe //invoicerview.cpp invoicerview.cpp A connect-ben szereplő változók QLineEdit típusúak, így az ezt definiáló fájlt be kell illeszteni a forrásfájlunkba. A számlatételek ábrázolására bevezetjük az InvoiceItem osztályt. Az osztályt a dokumentum osztállyal egy moduban definiáljuk. (invoicerdoc.h) Az osztályba felvesszük a számlatétel adatait tartalmazó mezőket, a hozzájuk tartozó lekérdező függvényeket, a számítással meghatározható jellemzőket visszaadó műveleteket, valamint egy konstruktort. A számlatételek adatait is el kell tárolnunk a dokumentumban, ezért az InvoiceItem osztály elkészülte után az InvoiceDoc számla osztály adattagjai közé felveszünk egy új adattagot, a számlatételeket tartalmazó listát. A számlatétel elemei: megnevezés: _name (adatttag) mennyiségi egység: _unit (adatttag) egységár: _unitprice (adatttag) mennyiség: _quantity (adatttag) nettó ár: _netprice=unitprice*_quantity (számított adat) áfakulcs: _vatpercent (adatttag) áfa összege: _vat=_netprice*_vat/100 (számított adat) bruttó ár: _grossprice=netprice+_vat (számított adat) 4. oldal

5 Rƒ C dẑ ŠO mœ WŽ\ \ŠR Z Az InvoiceItem osztály definícióját is és implementációját is a dokumentum osztály definíciós fájljában (invoicerdoc.h) adjuk meg. Ennek megfelelően egészítse ki az invoicerdoc.h fájlt az alábbiak szerint. Az InvoiceItem osztály definíciója és (!) implementációja class InvoiceItem public: InvoiceItem(QString n=qstring::null, QString u=qstring::null, int q=0, int up=0, int vat=0): _name(n), _unit(u), _quantity(q), _unitprice(up), _vatpercent(vat) void update(qstring n=qstring::null, QString u=qstring::null, int q=0, int up=0, int vat=0) _name=n; _unit=u; _quantity=q; _unitprice=up; _vatpercent=vat; invoicerdoc.h A konstruktorban inicializáljuk az InvoiceItem adattagjait. Valamennyi adattagnak van alapértelmezett kezdőértéke. Az update() tagfüggvénnyel a paraméterek alapján aktualizáljuk az adatokat. const QString& name() return _name; const QString& unit() return _unit; int quantity() return _quantity; int unitprice() return _unitprice; int vatpercent() return _vatpercent; //Bruttó ár int allvalue() const return _quantity*_unitprice*(100+_vatpercent)/100; A lekérdező műveletek olyan egyszerűek, hogy ezeket inline módon adjuk meg. Számított adatok aktuális értékét visszaadó függvények. //nettó ár int netvalue() const return _quantity*_unitprice; //áfa összege int vatvalue() const return _quantity*_unitprice*_vatpercent/100; //adattagok private: QString _name; QString _unit; int _quantity; int _unitprice; int _vatpercent; ; 5. oldal

6 U B ~Ẽ OšB O m Z ~œ~ E R pž=ÿca C Y m E Z Az InvoicerDoc osztály adattagjai közé felveszünk egy InvoiceItem típusú elemeket tartalmazó listát. A Qt Assistant segítségével nézze meg a QPtrList osztály tagfüggvényeit. // application specific includes #include <qptrlist.h> class InvoicerDoc : public Qobject invoicerdoc.h ; public: const QPtrList<InvoiceItem>& items() const return _items; protected: QPtrList<InvoiceItem> _items; 3 Nª «B ~ EŌ BŌ±m B²³±m íµoō±m d± A számlatétel felvitelére készítünk egy dialógusablakot. Ehhez a szokásos módon egy.ui kiterjesztésű user interface fájlt adunk a projekthez. A fájl neve legyen invitemdia.ui, és származtassuk azt a QDialog osztályból. Új dialógusablak létrehozása A számlatétel dialógusablakát a Qt Designer segítségével készítjük el a szokásos módon. A cél az alábbi párbeszédablak létrehozása. 6. oldal

7 A dialógusablak felépítése A vezérlőelemek típusát és tulajdonságait az alábbi táblázat tartalmazza. A dialógusablak paraméterezése Vezérlő azonosító Class Properties Megjegyzés InvItemDia QDialog Caption: New Item A dialógusablakon elhelyezett elemek paraméterezése Vezérlő azonosító Class Properties Megjegyzés TextLabel* QLabel Text: Name:, Buddy: itemname TextLabel* QLabel Text: Unit:, Buddy: unit TextLabel* QLabel Text: Unit price::, Buddy: unitprice TextLabel* QLabel Text: Quantity:, Buddy: quantity TextLabel* QLabel Text: Vat %:, Buddy: vatpercent itemname unit unitprice quantity QLineEdit QLineEdit QLineEdit QLineEdit vatpercent QComboBox ** okpushbutton QPushButton Text: OK Az OkPushButton gomb clicked() signálját kössük össze az InvItemDia dialógusablak accept() slotjával. cancelpushbutton QPushButton Text: Cancel A cancelpushbutton gomb clicked() signálját kössük össze az InvItemDia dialógusablak reject() slotjával. * : A *-gal megjelölt feliratoknál nem kötelező egyedi azonosítót megadni. ** Az áfa kulcsot legördülő listából választjuk ki. A legördülő lista létrehozására a QComboBox osztályt választottuk. A lista szerkesztéséhez a vezérlőelem felett a jobb egérfülre kattintva a felkínált helyi menüből válassza ki az Edit menüpontot. 7. oldal

8 Ý Elemi alkalmazások fejlesztése III. Új menüpont elhelyezése az alkalmazásban (Items/New) Az egyes számlatételek kezeléséért felelős dialógusablak behívására bevezetünk egy új menüpontot, amit a főmenübe illesztünk be. Egészítsük ki alkalmazásunkat az Item/New menüponttal. File: New, Open, Save, SaveAs, Quit Item: New View: ToolBar, StatusBar Help: About Az új menüpont bevezetésével kapcsolatban az alábbiakat kell megtennünk: Létrehozunk egy tevékenység objektumot (QAction). Beállítjuk a tevékenység alkalmazásspecifikus adatait (menü szövege, státusz sor szövege, stb.) Összekapcsoljuk a tevékenységet és az őt kezelő slotot. Létrehozzuk az új menüpontot, majd ráhelyezzük az alkalmazás főablakára. Hozzárendeljük a tevékenységet a menüponhoz. Megadjuk a slot implementációját. 3 3ḑ¹Rº»½¼N¾Uºa À¹dº\Á ÂúÄ\ÅN¼mÂÇÆ ¼È ÉÈ ¹\Ãmºi º Ê~Ë ÌÍ~ÎCÏZÐBÑÒdÓÕÔBÖ~ Ó~ØÚÙÜÛ class Invoicer : public QMainWindow private slots: void slotfilenew(); /* application specific slots*/ void slotitemsnew(); invoicer.h A tevékenységet implementáló slot deklarációja private: QAction *helpaboutapp; /* application specific actions */ QAction *itemsnew; Az Új tétel felvitele tevékenységet definiáló QAction deklarációja. ; Saját jegyzet 8. oldal

9 Þ3ß3àdáRâã½äNåUâaæÀádâ\ç èéâê\ënämèçìíbîðï øè ä àõêbà~ù àú mò àúßûömòúömä /** initializes all QActions of the application */ void Invoicer::initActions() filequit = new QAction(tr("Exit"), tr("e&xit"), 0, this); filequit->setstatustip(tr("quits the application")); filequit->setwhatsthis(tr("exit\n\nquits the application")); connect(filequit, SIGNAL(activated()), this, SLOT(slotFileQuit())); itemsnew = new QAction(tr("Insert new item"),tr("&new item"), 0, this); itemsnew ->setstatustip(tr("insert a new item into the invoice")); itemsnew ->setwhatsthis( tr("new Item\n\nEnables/Insert a new item into the invoice")); connect(itemsnew, SIGNAL(activated()), this, SLOT(slotItemsNew())); invoicer.cpp A QAction objektum inicializálása és befűzése, összekötése. A QAction első paraméterében megadjuk az új menü szövegét, a második paraméterében a gyorsbillentyűt és az eszközgomb szöveget. A harmadik paraméter this értékével azt jelezzük, hogy a tevékenység a főablak gyereke. Beállítjuk a súgó szöveget (status tip), a What is this szöveget, majd összekötjük a tevékenységet az őt kezelő slottal (slotitemsnew()) ü3ý3þdÿ Àÿ ý! " # %$ &')( Létrehozzuk az itemsmenu popup menüt, majd hozzáadjuk az itemsnew tevékenységet, és a menüt befűzzük a menüsorba. class Invoicer : public QmainWindow /* application specific slots*/ void slotitemsnew(); invoicer.h private: QPopupMenu *filemenu; QPopupMenu *itemsmenu; QPopupMenu *viewmenu; Az Items menüpont deklarációja. /* application specific actions */ QAction *itemsnew; ; 9. oldal

10 void Invoicer::initMenuBar() // menubar entry itemsmenu itemsmenu=new QPopupMenu(); itemsnew->addto(itemsmenu); /////////////////////////////////////////////////////////////////// // MENUBAR CONFIGURATION menubar()->insertitem(tr("&file"), filemenu); menubar()->insertitem(tr("&items"), itemsmenu); menubar()->insertitem(tr("&view"), viewmenu); menubar()->insertseparator(); menubar()->insertitem(tr("&help"), helpmenu); invoicer.cpp Létrehozzuk az Item menüpontot, és beledobjuk az itemsnew tevékenységet. Az Items menüpontot beillesztjük a menüsorba. *,+-/.%0/ ;:3"<=->23?2@=0/A-BA+ C Az új számlatétel felvitelekor az alábbi tevékenységeket kell elvégezni: dialógusablak létrehozása dialógusablak modális 1 megjelenítése ha a dialógust OK-val zárták: a bevitt adatok kinyerése a dialógusablakból új számlatétel (InvoiceItem) objektum hozzáadása a számlához a számlatételeket megjelenítő QListView (items) frissítése a view objektumban. #include "invitemdia.h" #include "qlineedit.h" #include "qcombobox.h" void Invoicer::slotItemsNew() statusbar()->message(tr("inserting a new invoice item...")); InvItemDia dlg(this,0,true); if (dlg.exec() == QDialog::Accepted) doc->insertitem(new InvoiceItem(dlg.itemName->text(), dlg.unit->text(), dlg.quantity->text().toint(), dlg.unitprice->text().toint(), dlg.vatpercent->currenttext().toint))); statusbar()->message (tr("item added. ")); else statusbar()->message(tr("cancelled")); invoicer.cpp Ne feledkezzen meg az include-okról!!! Az insertitem() függvényt még meg kell írni! 1 Modális megjelenítés: A párbeszédablak lesz az alkalmazás aktív ablaka mindaddig, amig be nem zárjuk azt. 10. oldal

11 A slotitemsnew() slot implementációjában létrehoztuk az InvItemDia dialógusablak egy példányát. A konstruktor első paramétere azt mondja meg, hogy a dialógusablak az Invoicer osztály gyereke. A harmadik paraméter true értéke jelzi, hogy a dialógusablakot modálisan szeretnénk használni. Ha a felhasználó az OK gombra kattintva lépett ki a dialógusból, akkor az ott létrehozott tételt beszúrjuk a dokumentumba az insertitem() függvény segítségével. A státusz orban megjelenik az Item added üzenet. Ha a felhasználó a Cancel semmi tennivalónk. Új tétel beillesztése a számlába gombra kattintott, akkor ezt a tényt a státuszsorban jelezzük, de ilyenkor nincs Amikor a számlatétel felbukkanó dialógusablakában megadtunk egy új tételt, és rákattintottunk az OK gombra, akkor egyrészt az új számlatétel adatait át kell adni az adatokért felelős doc-nak, másrészt a megjelenítésért felelős view-ban frissíteni kell a módosított sort. Először is a dokumentum osztályban bevezetünk egy új publikus függvényt (insertitem()), melyet majd meghívhatunk az Invoicer-ből az OK lenyomása után. (doc->insertitem()). Az insertitem() függvény egyrészt beilleszti az új számlatételt a dokumentumba, másrészt kibocsájtja az iteminserted() signalt (emit signal), jelezvén a külvilág számára, hogy ő beillesztett egy új számlatételt, azaz megváltoztak az adatai. Az InvoicerView osztályban elkészítjük a fenti signál fogadására alkalmas slotdocitemadded() slotot, és összekötjük azt az insertitem() függvényben kibocsájtott iteminserted() signállal. A slotdocitemadded() függvény feladata lesz az új számlatétel megjelenítése. D Saját jegyzet EGFIHJ H KLMNOGOPQ RPSQTQURNWV XY#K Z%H[XY\MNO!] S OGP Y L^P MNÒ _ 11. oldal

12 class InvoicerDoc : public QObject Q_OBJECT invoicerdoc.h public: const QPtrList<InvoiceItem>& items() const return _items; ; void insertitem(invoiceitem *i) _items.append(i); modified=true; emit iteminserted(i); signals: void documentchanged(); void iteminserted(invoiceitem *i); protected: QPtrList<InvoiceItem> _items; A függvénydefiníciót inline módon adtuk meg. Ha egy számlatételt beillesztettünk az _items listába, signált bocsájtunk ki. A signál a paraméterén keresztül átadja a számlatételre mutató pointert. agbdc egf g hbijk j lhg?lgmnbolh/l pwq jkcl!i"pkel jj k j lhbhrbcjfsb`f tip class InvoicerView : public InvoicerViewBase Q_OBJECT public: InvoicerView(QWidget *parent=0, InvoicerDoc* doc=0); ~InvoicerView(); protected slots: void slotdocumentchanged(); void slotdocitemadded(invoiceitem*); ; invoicerview.h Deklaráljuk a slotdocitemadded() slotot, amelyre majd rákötjük az iteminserted() signalt. InvoicerView::InvoicerView(QWidget *parent, InvoicerDoc *doc) : InvoicerViewBase(parent) connect(doc, SIGNAL(documentChanged()), this, SLOT(slotDocumentChanged())); connect( doc,signal(iteminserted(invoiceitem*)), this,slot(slotdocitemadded(invoiceitem*))); invoicerview.cpp Összekötjük a dokumentum osztály iteminserted() szignálját a nézet osztály (this) slotdocitemadded() slotjával. 12. oldal

13 #include <qlistview.h> void InvoicerView::slotDocItemAdded(InvoiceItem* i) new QListViewItem(items, i->name(), i->unit(), QString::number(i->quantity()), QString::number(i->unitPrice()), QString::number(i->netValue()), QString::number(i->vatPercent()), QString::number(i->vatValue()), QString::number(i->allValue()) ); invoicerview.cpp Slot implementáció A dokumentum iteminserted() signáljától kapott számlatétel adatai alapján a QListViewItem konstruktora segítségével az items listához hozzávesszük az új számlatételt. A QListViewItem típus használata miatt az InvoicerView osztályba be kell illeszteni a QListView osztály definícióját. (#include <qlistview.h>) u Fordítás/Futtattás v wxwyz/= ~W ~zwy = ƒ ~ x Számlatétel módosításakor az alábbi teendőnk van: * a kiválasztott sorhoz tartozó számlatétel meghatározása dialógusablak létrehozása * a dialógusablak feltöltése a számlatételből dialógusablak modális megjelenítése ha a dialógust OK-val zárták: a bevitt adatok kinyerése a dialógusablakból * a számlatétel (InvoiceItem) objektum módosítása a számlában a számlatételeket megjelenítő QListView (items) frissítése a view objektumban. Vegye észre, hogy a számlatétel módosítása nagyon hasonlít az új számlatétel felvitele feladathoz, ezért csak a *-gal megjelölt lépéseket kell többletként megoldani. Saját jegyzet 13. oldal

14 Elemi alkalmazások fejlesztése III. Számlatétel felismerése A számlatételek módosításakor a nézet osztályban (InvoicerView) megjelenített listából kiválasztott sort (számlatételt) kell módosítani. Ehhez tudnunk kell, hogy a QListView (items) kiválasztott sora a ListViewItem lista melyik elemére (_items egy eleme) vonatkozik. Egy listában szereplő elem (sor) azonosítására általában többféle megoldás is kínálkozik. Azonosíthatjuk a sort a kijelölt sor tartalma alapján, de ez több egyforma sor esetén nem egyértelmű. Meghatározhatjuk a számlatételt a kijelölt sor sorszáma alapján. Ez azért nehézkes, mert egyrészt a ListView-ban az elemek sorrendje felcserélhető, másrészt egy-egy tétel törlése sok adminisztrációt kíván. Az előzőeknél általánosabb és elegánsabb megoldást kapunk, ha a QListView osztályból származtatunk egy saját sor típust, és ezt összekötjük a neki megfelelő InvoiceItem objektummal. Esetünkben a nézet osztályban kiválasztott sor (számlatétel) tartalma alapján nem tudjuk eldönteni, hogy az az _items lista melyik elemét jeleníti meg, ezért mi a harmadik megoldást választjuk. Ĝ dš ŒŽ > 9 ; Š Š Š Œ)šœ W ŠŠ žÿbš s / / / š A ListViewInvoiceItem osztály felelősége a hozzá tartozó számlatétel megjelenítése. A ListViewInvoiceItem osztályt a QListViewItem osztályból származtatjuk. Az új osztályt kibővítjük egy új adattaggal (egy InvoiceItem-re mutató pointerrel), így minden ListViewInvoiceItem típusú példány tudja magáról, hogy a doc-ban tárolt lista mely adatát reprezentálja. Az új sor típust beágyazzuk az ImvoicerView osztályba!! Saját jegyzet 14. oldal

15 ª «B ) /±² ³ µ / ±³ ± ¹»º±¼½%¾ À % ~ À /¼Á¾œÂ± à ẂÄ/ /ÅÇÆ` UÈ T ¹ É Á>±¹?± /¼ >ÅÊÆË //include files for Qt #include <qlistview.h> invoicer.h(!!!) // application specific includes #include "invoicerdoc.h" #include "invoicerviewbase.h" class InvoicerView : public InvoicerViewBase Q_OBJECT public: InvoicerView(QWidget *parent=0, InvoicerDoc* doc=0); ~InvoicerView(); //Beágyazott osztály eleje class ListViewInvoiceItem: public QListViewItem public: ListViewInvoiceItem(QListView *parent, InvoiceItem *i): QListViewItem(parent, i->name(), i->unit(), QString::number(i->quantity()), QString::number(i->unitPrice()), QString::number(i->netValue()), QString::number(i->vatPercent()), QString::number(i->vatValue()), QString::number(i->allValue())), _i(i) Beágyazott osztály eleje. void update() settext(0, _i->name()); settext(1, _i->unit()); settext(2, QString::number(_i->quantity())); settext(3, QString::number(_i->unitPrice())); settext(4, QString::number(_i->netValue())); settext(5, QString::number(_i->vatPercent())); settext(6, QString::number(_i->vatValue())); settext(7, QString::number(_i->allValue())); InvoiceItem *_i; ; //Beágyazott osztály vége Beágyazott osztály vége. protected slots: void slotdocumentchanged(); void slotdocitemadded(invoiceitem*); ; 15. oldal

16 A ListViewInvoiceItem típus bevezetése után módosítani kell a slotdocitemadded() slotot is. void InvoicerView::slotDocItemAdded(InvoiceItem* i) new ListViewInvoiceItem(items, i); invoicerview.cpp Mostpedig valósítsuk meg a számlatétel módosítása, illetve törlése funkciókat. Ehhez létre kell hozni a megfelelő QAction objektumokat, be kell őket fűzni a menübe, és slotokat kell definiálnunk a tevékenységek elvégzésére. Új menüpontok elhelyezése az alkalmazásban (Items/Edit; Items/Remove) Az új menüpont bevezetésének lépései: az almenü mező (adattag) deklarációja (invoicer.h) a számlatétel módosítása / számlatétel törlése tevékenységeket definiáló QAction mezők deklarációja (invoicer.h) a tevékenységeket implementáló slotok deklarációja (invoicer.h) az almenük inicializálása és befűzése a főmenübe (invoicer.cpp) a QAction objektumok inicializálása és befűzése a főmenübe (invoicer.cpp) a slotok implementációja (invoicer.cpp) Ì,Í ÎÏ Ð Ñ Ò ÓÍ Î ÔÇÍ Î Ï Ð Ñ ÕdÏÐ?Ö= Ï"ÎÏ Ø ÙÏ ÚÛ ÑØÜ Ï Ù ÓWÏ Ù Ý^Þßáà âí/ãçä`þ class Invoicer : public QMainWindow invoicer.h private slots: /* application specific slots*/ void slotitemsnew(); /* Edit an item in the actual invoice */ void slotitemsedit(); /* Remove an item from the actual invoice */ void slotitemsremove(); A tevékenységeket kezelő slotok deklarációja. private: ; /* application specific actions */ QAction *itemsnew; QAction *itemsedit; QAction *itemsremove; A Számlatétel módosítása és a Számlatétel törlése tevékenységek deklarációja. 16. oldal

17 åçæ,è éêë\ìí îè é ïêè éê ë ì ð ê ë#ñ òê"é êòóôê õöì ó ñwøçùoêôé[úë#ñwôüû/ó é ýsê þñæÿì UóìTèõWè è ûbè^æÿûbÿì void Invoicer::initActions() itemsnew = new QAction(tr("Insert new item"),tr("&new item"), 0, this); itemsnew ->setstatustip(tr("insert a new item into the invoice")); itemsnew ->setwhatsthis( tr("new Item\n\nEnables/Insert a new item into the invoice")); connect(itemsnew, SIGNAL(activated()), this, SLOT(slotItemsNew())); invoicer.cpp itemsedit = new QAction(tr("Edit Item"), tr("&edit Item"), 0, this); itemsedit->setstatustip(tr("modifies an existing invoice item")); itemsedit->setwhatsthis( tr("edit Item\n\nModifies an existing invoice item")); connect(itemsedit, SIGNAL(activated()), this, SLOT(slotItemsEdit())); itemsremove = new QAction(tr("Remove Item"), tr("&remove Item"), 0, this); itemsremove->setstatustip(tr("removes an existing invoice item")); itemsremove->setwhatsthis( tr("remove Item\n\nRemoves an existing invoice item")); connect(itemsremove, SIGNAL(activated()), this, SLOT(slotItemsRemove()));! "#%$& ')(+*,)(-#./ //10 "32.!54760!" void Invoicer::initMenuBar() // menubar entry itemsmenu itemsmenu=new QPopupMenu(); itemsnew->addto(itemsmenu); itemsedit->addto(itemsmenu); itemsremove->addto(itemsmenu); invoicer.cpp Az initmenubar() műveletben a már korábban létrehozott itemsmenu popup menühöz hozzáadjuk az itemsedit/itemsremove objektumokat, majd befűzzük azokat a menüsorba. 8 9 :;< =>?@:;>BA C3;:+='DA < =< EF;+G.H): IKJMLONP>BA C3;PQ;<)=R>!?@:;NTSUS Az új számlatétel módosításakor az alábbi tevékenységeket kell elvégezni: az aktuálisan kiválasztott sorhoz tartozó InvoiceItem objektum meghatározása a felvitelnél használt dialógus feltöltése a számlatétel alapján dialógusablak modális megjelenítése ha a dialógust OK-val zárták: a változtatások elmentése a kiválasztott InvoiceItem objektumba az aktuális sor adatainak frissítése 17. oldal

18 A slotitemsedit() slot implementációjában használhatjuk a felvitelhez létrehozott InvItemDia dialógusablakot. Ha azt OK-val zárták (QDialog::Accepted()), akkor módosítjuk a tételt a dokumentumban és a view objektumban. void Invoicer::slotItemsEdit() statusbar()->message(tr("modifying current item...")); if(view->items->currentitem()) InvItemDia dlg(this,0,true); InvoiceItem *ii = (dynamic_cast<invoicerview::listviewinvoiceitem *> (view->items->currentitem()))->_i; dlg.itemname->settext(ii->name()); dlg.unit->settext(ii->unit()); dlg.quantity->settext(qstring::number(ii->quantity())); dlg.unitprice->settext(qstring::number(ii->unitprice())); int cnt=dlg.vatpercent->count(); for(int i=0; i<cnt; ++i) if (dlg.vatpercent->text(i).toint()==ii->vatpercent()) dlg.vatpercent->setcurrentitem(i); break; if (dlg.exec() == QDialog::Accepted) ii->update( dlg.itemname->text(), dlg.unit->text(), dlg.quantity->text().toint(), dlg.unitprice->text().toint(), dlg.vatpercent->currenttext().toint()); (dynamic_cast<invoicerview::listviewinvoiceitem *> (view->items->currentitem()))->update(); doc->setmodified(); statusbar()->message(tr("item updated."), 2000); else statusbar()->message(tr("modification aborted."), 2000); statusbar()->message(tr("ready")); invoicer.cpp A setmodified() függvényt még meg kell adni a dokumentum osztályban. Ha a nézet osztály items listájában van kiválasztott elem, akkor létrehozunk egy modális, InvItemDia típusú párbeszédablakot, amelyet kitöltünk a kiválasztott listaelem adataival. Az adatok kitöltéséhez felhasználjuk az általunk létrehozott ListViewInvoiceItem típusban tárolt mutatót. Az ÁFA kulcs QComboBox-át úgy állítjuk be, hogy az az aktuális listaelemhez tartozó értéket mutassa. Ha az OK gombbal tértünk vissza, akkor aktualizáljuk a dokumentumot ( ii->update ()), majd a nézetben is frissítjük a módosított számlatételt. A view->items->currentitem() visszaadja az aktuális tételre mutató pointert, melynek típusa QListViewItem*. Ahhoz, hogy a ListViewInvoiceItem osztály update() metódusa hajtódjon végre el kell végeznünk egy dianamikus típuskonverziót. 18. oldal

19 p Elemi alkalmazások fejlesztése III. V W XYZ [\]Z [^_`Za\Bb ^3YX+['cb Z [Z dfy+e.f)x gkhmiojp\bb ^3YPkYZ)[R\!]lZ)[m^_Z!jTnon Egy számlatétel törlésekor az alábbi tevékenységeket kell elvégezni: az aktuálisan kiválasztott sorhoz tartozó InvoiceItem objektum meghatározása ha a dialógust OK-val zárták: a tétel törlése a dokumentumból a tétel törlése a view-ból void Invoicer::slotItemsRemove() statusbar()->message(tr("removing current item...")); if (view->items->currentitem()) InvoiceItem *ii = (dynamic_cast <InvoicerView::ListViewInvoiceItem *> (view->items->currentitem()))->_i; doc->removeitem(ii); delete view->items->currentitem(); statusbar()->message(tr("item removed."), 2000); statusbar()->message(tr("ready")); invoicer.cpp A removeitem() függvényt még meg kell adni a dokumentum osztályban. Új műveletek a dokumentum osztályban (setmodified(), removeitem()) A program hibátlan működéséhez még meg kell adnunk a dokumentum osztály hiányzó két metódusát. class InvoicerDoc : public QObject public: bool ismodified() const; void setmodified(bool val=true) modified = val; void removeitem(invoiceitem *i) _items.removeref(i); modified=true; ; invoicer.cpp Fordítás/Futtattás q'rtsrvu/wyxfzf ~ `~U ƒpƒ ƒ Természetesen ezzel még nem készült el a teljes alkalmazás. Hátra van még a számla mentése fájlba, a számla visszaolvasása fájlból, és az input adatok ellenőrzése. Ezeket a feladatokat SDI alkalmazás készítése Qt-ben III. munkafüzetben dolgozzuk fel. 19. oldal

20 KˆŠ % Œ3 3Ž,.! B P., 7 U š!,ˆ3œœ A projektet összeállíthatja a Qt parancssori eszközeivel is. 1. Hozzon létre a projekt számára egy könyvtárat: invoicer 2. Hozza létre (vagy a honlapomról töltse le) az alábbi fájlokat: invoicer.h, invoicer.cpp, invoicerdoc.h,invoicerdoc.cpp, invoicerview.h,invoicerview.cpp, main.cpp, invitemdia.ui, invoicerviewbase.ui. 3. Hozza létre a projekt könyvtárában az images könyvtárat, és másolja oda az ikonok kép fájljait: new.png, open.png, save.png 4. Nyisson meg egy terminál ablakot. Legyen a projekt könyvtárban (invoicer). 5. Hozza létre a platformfüggetlen projekt fájlt (invoicer.pro): qmake -project 6. A képek (ikonok) alkalmazása miatt az automatikusan generált projekt fájlt (invoicer.pro) egészítse ki az alábbiak szerint: ###################################################################### # Automatically generated by qmake (1.04a) Tue Apr 13 12:48: ###################################################################### TEMPLATE = app INCLUDEPATH +=. # Input HEADERS += invoicer.h invoicerdoc.h invoicerview.h INTERFACES += invitemdia.ui invoicerviewbase.ui SOURCES += invoicer.cpp invoicerdoc.cpp invoicerview.cpp main.cpp IMAGES += images/new.png images/open.png images/save.png 7. Hozza létre a platform függő make fájlt: qmake invoicer.pro 8. Fordítsa/Szerkessze a programot: make 9. Futtassa a programot:./invoicer 20. oldal

C++/Qt alapú SDI alkalmazás készítése II...2

C++/Qt alapú SDI alkalmazás készítése II...2 ...2 Feladat...2 A dokumentum típus módosítása...2 A fejlécet ábrázoló mezők deklarálása...3 Mező lekérdező műveletek...3 Mező beállító slotok...3 Az adatbeviteli mezők és az adattagok összekötése...4

Részletesebben

Elemi alkalmazások fejlesztése III

Elemi alkalmazások fejlesztése III Elemi alkalmazások fejlesztése III C++/ Qt alapú SDI alkalmazás készítése I. Készítette: Szabóné Nacsa Rozália Steingart Ferenc 1 Feladat Készítsünk egy számlakezel ő ablakos alkalmazást! Számlafejléc

Részletesebben

Elemi alkalmazások fejlesztése III

Elemi alkalmazások fejlesztése III Elemi alkalmazások fejlesztése III Qt SDI alkalmazás készítése I Kdevelop környezetben Készítette: Szabóné Nacsa Rozália Steingart Ferenc 1 Feladat Készítsünk egy számlakezel ő ablakos alkalmazást! Számlafejléc

Részletesebben

Elemi alkalmazások fejlesztése III. SDI alkalmazás készítése Qt-ben I.

Elemi alkalmazások fejlesztése III. SDI alkalmazás készítése Qt-ben I. SDI alkalmazás készítése Qt-ben I...3 Feladat...3 A projekt osztálydiagramja...3 A projekt modulszekezete...4 Új projekt létrehozása...5 A számla megtervezése...5 Vezérlőelemek és paraméterezésük...6 Az

Részletesebben

Elemi alkalmazások fejlesztése III.

Elemi alkalmazások fejlesztése III. Elemi alkalmazások fejlesztése III. MDI alkalmazás II. (Számla) Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2007 1 Számla felépítése fejléc tábla 2 Az alkalmazás

Részletesebben

Elemi alkalmazások fejlesztése III

Elemi alkalmazások fejlesztése III Elemi alkalmazások fejlesztése III C++/ Qt alapú SDI alkalmazás készítése III. Készítette: Szabóné Nacsa Rozália Steingart Ferenc 1 Ami már kész van: Készítettünk egy Qt SDI alkalmazást. 2 Ami már kész

Részletesebben

Elemi alkalmazások fejlesztése III

Elemi alkalmazások fejlesztése III Elemi alkalmazások fejlesztése III SDI alkalmazás készítése Qt-ben III. Készítette: Szabóné Nacsa Rozália Steingart Ferenc Ami már kész van: Készítettünk egy Qt SDI alkalmazást. Ami már kész van: Megterveztük

Részletesebben

Alkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 1/3

Alkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 1/3 Tartalomjegyzék Feladat...2 A számla elemei...2 A dokumentumot tároló fájl felépítése...3 A számlakészítő program osztálydiagramja...4 Field osztály...4 field.h...4 field.cpp...5 Fields osztály...6 fields.h...6

Részletesebben

Elemi alkalmazások fejlesztése III

Elemi alkalmazások fejlesztése III Elemi alkalmazások fejlesztése III Egy ablakos alkalmazás készítése I. C++ / Qt felhasználásával készítette: Szabóné Nacsa Rozália 1 Ajánlott irodalom Qt dokumentáció online: www.trolltech.com lokális

Részletesebben

Elemi alkalmazások fejlesztése III.

Elemi alkalmazások fejlesztése III. Elemi alkalmazások fejlesztése III. Bevezetés Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2007 1 A Qt assistant nyitó ablaka www.trolltech.com 2 Alkalmazás

Részletesebben

Elemi alkalmazások fejlesztése III.

Elemi alkalmazások fejlesztése III. Elemi alkalmazások fejlesztése III. Grafikus felületű alkamazások készítése Bevezetés I. Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2009 1 www.trolltech.com

Részletesebben

Alkalmazások fejlesztése III. Qt 4 /C++ alapú grafikus alkalmazás Bevezetés I.

Alkalmazások fejlesztése III. Qt 4 /C++ alapú grafikus alkalmazás Bevezetés I. Tartalomjegyzék Alkalmazás készítés Qt osztályokkal...2 A qmake eszköz...2 Hello Qt (hello)...2 Objektumok közötti kommunikáció (quit)...3 Fordítás/futtatás...4 Grafikus felület létrehozása, vezérlők szinkronizálása

Részletesebben

Alkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 3/3

Alkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 3/3 Tartalomjegyzék Feladat...2 Az alkalmazás osztálydiagramja...2 Űrlap elkészítése...3 Grafikus felület kialakítása...3 A felületen elhelyezett elemek...3 invoiceform.h...3 invoiceform.cpp...5 Főablak elkészítése...11

Részletesebben

Elemi alkalmazások fejlesztése III. A Qt assistant elindítása. Ajánlott ir odalom. A Qt assistant nyitó ablaka

Elemi alkalmazások fejlesztése III. A Qt assistant elindítása. Ajánlott ir odalom. A Qt assistant nyitó ablaka Elemi alkalmazások fejlesztése III Ajánlott ir odalom Egy ablakos alkalmazás készítése I. C++ / Qt felhasználásával Qt dokumentáció online: www.trolltech.com lokális változat: Kdevelop help vagy /usr/share/doc...

Részletesebben

Egységes és objektumközpontú adatbázis-kezelés (2. rész)

Egységes és objektumközpontú adatbázis-kezelés (2. rész) Egységes és objektumközpontú adatbázis-kezelés (2. rész) A folytatásában a bemutatjuk, hogyan kezelhetünk Qt rendszer alatt SQL sormutatót, és készíthetünk grafikus felületet programoknak a Qt Designer

Részletesebben

Elemi alkalmazások fejlesztése IV. Adatbázis-kezelő GUI alkalmazás készítése 3. Összetett tábla karbantartása

Elemi alkalmazások fejlesztése IV. Adatbázis-kezelő GUI alkalmazás készítése 3. Összetett tábla karbantartása Elemi alkalmazások fejlesztése IV. Adatbázis-kezelő GUI alkalmazás készítése 3. Összetett tábla karbantartása Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/eaf4/ Qt 4 2007

Részletesebben

3. Osztályok II. Programozás II

3. Osztályok II. Programozás II 3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt

Részletesebben

Alkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 2/3

Alkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 2/3 Tartalomjegyzék Feladat...2 Az alkalmazás osztálydiagramja...2 Modell-nézet (model-view) tervezési minta (bevezetés)...3 Számlatételek kezelése, karbantartása ( táblázat kezelés )...4 A táblázatkezelő

Részletesebben

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni: Excel objektumok Az excelben az osztályokat úgynevezett class modulokként hozzuk létre. Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni: View-ba

Részletesebben

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban Adabáziselérés ODBC-n keresztül utasításokkal C#-ban 1. Előkészítés Access adatbázis lemásolása, ODBC DSN létrehozása Másoljuk le az alábbiakat: Mit Honnan Hova list.mdb p:\johanyák Csaba\Vizualis programozas\data\

Részletesebben

Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet Copyright 2008 Johanyák Zsolt Csaba

Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet    Copyright 2008 Johanyák Zsolt Csaba Ugráló gomb Készítsünk egy egyszerű játékprogramot, ami egy mozgó nyomógombot tartalmaz. A nyomógomb beállított ideig marad egy helyben, majd az ablakon számára elhatárolt terület (panel) egy véletlenszerűen

Részletesebben

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani. Vizuális programozás 1. A gyakorlat célja A gyakorlat célja a Könyvtár alkalmazás folytatása az előző gyakorlaton elkészített grafikus felület felhasználásával. Elsőként lemásoljuk az előző gyakorlat eredményeként

Részletesebben

Budapest, 2007. március. ELTE Informatikai Kar

Budapest, 2007. március. ELTE Informatikai Kar Tartalomjegyzék Alkalmazás készítés Qt osztályokkal...2 A qmake eszköz...2 Hello Qt (hello)...2 A projekt elkészítésének lépései...3 Objektumok közötti kommunikáció (quit)...3 A projekt elkészítésének

Részletesebben

3D-s számítógépes geometria és alakzatrekonstrukció

3D-s számítógépes geometria és alakzatrekonstrukció 3D-s számítógépes geometria és alakzatrekonstrukció 3a. Tesztkörnyezet I http://cg.iit.bme.hu/portal/node/312 https://portal.vik.bme.hu/kepzes/targyak/viiima01 Dr. Várady Tamás, Salvi Péter BME, Villamosmérnöki

Részletesebben

MySql elindítása. Elemi alkalmazások fejlesztése IV. Feladat. Az alkalmazás adatbázisa

MySql elindítása. Elemi alkalmazások fejlesztése IV. Feladat. Az alkalmazás adatbázisa Elemi alkalmazások fejlesztése IV. C++/Qt adatbáziskezel ő alkalmazás készítése Kdevelop környezetben I. MySql elindítása [nacsa@localhost nacsa]$ su Password:jelszó [root@localhost nacsa]# /usr/bin/safe_mysqld

Részletesebben

Elemi alkalmazások fejlesztése IV. Adatbáziskezel alkalmazás készítése QtDesignerben. Készítette: Szabóné Nacsa Rozália

Elemi alkalmazások fejlesztése IV. Adatbáziskezel alkalmazás készítése QtDesignerben. Készítette: Szabóné Nacsa Rozália Elemi alkalmazások fejlesztése IV. Adatbáziskezel ő alkalmazás készítése QtDesignerben Készítette: Szabóné Nacsa Rozália 1 Származtatásos modulszerkezet Q t form.ui U formbase.h Örökl ő dés form.h formbase.cpp

Részletesebben

Elemi alkalmazások fejlesztése IV.

Elemi alkalmazások fejlesztése IV. Elemi alkalmazások fejlesztése IV. C++/Qt adatbáziskezelő alkalmazás készítése Kdevelop környezetben I. Készítette: Szabóné Nacsa Rozália 1 MySql elindítása [nacsa@localhost nacsa]$ su Password:jelszó

Részletesebben

Elemi alkalmazások fejlesztése III.

Elemi alkalmazások fejlesztése III. Elemi alkalmazások fejlesztése III. Memóriajáték 1. Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2007 1 memorygame Játék közben 2 memorygame Kártyák kiválasztása

Részletesebben

Access adatbázis elérése OLE DB-n keresztül

Access adatbázis elérése OLE DB-n keresztül Access adatbázis elérése OLE DB-n keresztül Készítsünk egy grafikus felülető alkalmazást, ami lehetıvé teszi egy Access adatbázisban tárolt hallgatói adatok (EHA, Név, e-mail cím) lekérdezését (összes

Részletesebben

Programozási technológia

Programozási technológia Programozási technológia Swing GUI készítése NetBeans IDE segítségével Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Bevezető Eddig a grafikus felhasználói felületet kódból hoztuk létre kézzel. A mi

Részletesebben

Eseményvezérelt alkalmazások

Eseményvezérelt alkalmazások Szabóné Nacsa Rozália nacsa@inf.elte.hu Eseményvezérelt alkalmazások A Windows alkalmazások eseményvezérelt alkalmazások Esemény: egér kattintás billenty leütés stb. Üzenetkezelés Operációs rendszer kódja

Részletesebben

QLabel *label = new Qlabel("Hello Qt!",0);

QLabel *label = new Qlabel(Hello Qt!,0); #include #include int main(int argc,char **argv) QApplication app(argc,argv); QLabel *label = new Qlabel("Hello Qt!",0); app.setmainwidget(label); label->show(); return app.exec();

Részletesebben

HVK Adminisztrátori használati útmutató

HVK Adminisztrátori használati útmutató HVK Adminisztrátori használati útmutató Tartalom felöltés, Hírek karbantartása A www.mvfportal.hu oldalon a bejelentkezést követően a rendszer a felhasználó jogosultsági besorolásának megfelelő nyitó oldalra

Részletesebben

SDI ALKALMAZÁS I. Workspace / ResourceView / Toolbar / IDR_MAINFRAME. Workspace / ResourceView / Menu / IDR_MAINFRAME

SDI ALKALMAZÁS I. Workspace / ResourceView / Toolbar / IDR_MAINFRAME. Workspace / ResourceView / Menu / IDR_MAINFRAME SDI ALKALMAZÁS I. Feladat: Készítsünk egy olyan alkalmazást, amely az év végi adózás céljából rögzíti egyetlen évközi bevételnek az adatait: bruttó jövedelem adóel ı leg nettó bevétel jövedelem forrása

Részletesebben

Tervezőeszközök, fejlesztőeszközök használata Qt alapú alkalmazásoknál. Saját vezérlő használata tervezőben (worldclocks)

Tervezőeszközök, fejlesztőeszközök használata Qt alapú alkalmazásoknál. Saját vezérlő használata tervezőben (worldclocks) Tartalomjegyzék Tervezőeszközök, fejlesztőeszközök használata Qt alapú alkalmazásoknál...1 Saját vezérlő használata tervezőben (worldclocks)...1 DigitalClock osztály (módosítás)...2 MyForm osztály...3

Részletesebben

A Java nyelv. Dialógus ablakok. Elek Tibor

A Java nyelv. Dialógus ablakok. Elek Tibor A Java nyelv Dialógus ablakok Elek Tibor Dialógus ablakok Szerepe: felbukkanó ablak (üzenet, input) Felépítése, használata majdnem ua., mint JFrame Tulajdonos: lehet tulajdonosa, amellyel együtt ikonizálódik,

Részletesebben

ő ő í ö í í Ó íú ő í ő í ö ö ő ö ő í ő ő ö í ö ő ö ú í ű ú ö ö ö ö í í ö ü ő ú Á öí ű ú ű ú ú ö ö ö ő ü ö ő ő ü ő ő ő ű ö ű ú ú ö

ő ő í ö í í Ó íú ő í ő í ö ö ő ö ő í ő ő ö í ö ő ö ú í ű ú ö ö ö ö í í ö ü ő ú Á öí ű ú ű ú ú ö ö ö ő ü ö ő ő ü ő ő ő ű ö ű ú ú ö Á ö É Á ö ú ú ö É É Á Á É í Á ü ü ü ö í ö ö ő Á í ü ö ő í ő í ö ú ö í í í Ü ü ő ő ő ő ö őí ő ű ő őí í ú ö ő ő ö ő ő í ö ő ö ü ű ö Ú ú í í ü ö Á ő í ő ő ő í ő í ü ű ő ő ü őí ő ő í ö í í Ó íú ő í ő í ö ö

Részletesebben

Elemi alkalmazások fejlesztése III

Elemi alkalmazások fejlesztése III Elemi alkalmazások fejlesztése III Egyablakos alkalmazás készítése I. Qt/X11 felhasználásával Kdevelop környezetben készítette: Steingart Ferenc Szabóné Nacsa Rozália Ajánlott irodalom Qt dokumentáció

Részletesebben

Grafikus Qt programok írása segédeszközök nélkül

Grafikus Qt programok írása segédeszközök nélkül Grafikus Qt programok írása segédeszközök nélkül Grafikus felületű Qt programokat ahogy láttuk, készíthetünk egy egyszerű szövegszerkesztővel is, bár a Qt jó támogatást ad a grafikus felület grafikus tervezésére

Részletesebben

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor Java Programozás 4. Gy: Java GUI Tipper, MVC kalkulátor 15/1 B ITv: MAN 2018.03.10 1. Feladat: Tipper Készítsük el a tippelős programunk grafikus változatát. Az üzleti logika kódja megvan, a felület pedig

Részletesebben

Diákigazolvány. Belépés> Adminisztráció> Iskolai oktatás képes menü> diákigazolvány> diákigazolvány igénylés

Diákigazolvány. Belépés> Adminisztráció> Iskolai oktatás képes menü> diákigazolvány> diákigazolvány igénylés Tartalom Új diákigazolvány igénylés folyamata... 2 1. IAR feltöltéshez szükséges jogosultságok beállítása... 2 2. Token kérés... 2 3. Új igénylés feladása... 2 Igénylések keresése, szinkronizálása... 4

Részletesebben

Az importálás folyamata Felhasználói dokumentáció verzió 2.1.

Az importálás folyamata Felhasználói dokumentáció verzió 2.1. Az importálás folyamata Felhasználói dokumentáció verzió 2.1. Budapest, 2008. Változáskezelés Verzió Dátum Változás Pont Cím Oldal 2.1. 2008.01.17. A teljes dokumentáció megváltozott Kiadás: 2008.01.17.

Részletesebben

Szoftvertechnolo gia gyakorlat

Szoftvertechnolo gia gyakorlat Szoftvertechnolo gia gyakorlat Dr. Johanyák Zsolt Csaba http://johanyak.hu 1. Dependency Injection (függőség befecskendezés) tervezési minta A tervezési minta alapgondolata az, hogy egy konkrét feladatot

Részletesebben

Swing GUI készítése NetBeans IDE segítségével

Swing GUI készítése NetBeans IDE segítségével Programozási Swing e NetBeans IDE segítségével Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 2 2 Eddig a grafikus felhasználói felületet kódból hoztuk létre kézzel. A mi feladatunk volt az

Részletesebben

A slotfilequit() módosítása...18 Ami még hátra van...18 Projekt összeállítása Qt parancsokkal...19

A slotfilequit() módosítása...18 Ami még hátra van...18 Projekt összeállítása Qt parancsokkal...19 ...2 Feladat...2 Beviteli mezők ellenőrzése...2 Ellenőrző objektumok (Validátorok)...3 QValidator::State...3 QValidator::validate()...3 QValidator::fixup()...3 Az adatbevitel ellenőrzésének lépései...3

Részletesebben

Tortoise SVN használata. Képes útmutató

Tortoise SVN használata. Képes útmutató Tortoise SVN használata Képes útmutató 0. lépés Checkout könyvtár létrehozása Hozzunk létre egy könyvtárat, ahova letöltjük első alkalommal a Repository tartalmát és ahol később dolgozni fogunk! 1. Checkout

Részletesebben

Java Programozás 5. Gy: Java alapok. Adatkezelő 1.rész

Java Programozás 5. Gy: Java alapok. Adatkezelő 1.rész Java Programozás 5. Gy: Java alapok Adatkezelő 1.rész 27/1 B ITv: MAN 2018.04.13 Feladat Egy nagyon hosszú feladatmegoldásba kezdünk bele: létrehozunk egy adatkezelő programot, sok-sok extrával: 27/2 A

Részletesebben

Sorosítás (szerializáció) és helyreállítás. 1. Bináris sorosítás és helyreállítás. 1.1. Szükséges névterek. 1.2. Attribútumok. 1.3.

Sorosítás (szerializáció) és helyreállítás. 1. Bináris sorosítás és helyreállítás. 1.1. Szükséges névterek. 1.2. Attribútumok. 1.3. Sorosítás (szerializáció) és helyreállítás Cél: a memóriában tárolt adatok egyszerű lemezre mentése és visszatöltése. A sorosítás során létrehozunk egy állományt és egy sorosítást kezelő objektumot. Ez

Részletesebben

Folyamatos teljesítésű számlák tömeges generálása időszakonként, egyedi tételek kezelésének lehetőségével

Folyamatos teljesítésű számlák tömeges generálása időszakonként, egyedi tételek kezelésének lehetőségével Tömeges számlázás Folyamatos teljesítésű számlák tömeges generálása időszakonként, egyedi tételek kezelésének lehetőségével Tömeges számlázáshoz tartozó alap beállítások Tömeges számlázási adatok megadása

Részletesebben

A jobboldalon a pnlright egy Stacked Widget Állítsuk be az első lapot és nevezzük el pnldraw-ra:

A jobboldalon a pnlright egy Stacked Widget Állítsuk be az első lapot és nevezzük el pnldraw-ra: A Rajzolás lap A rajzolás lap elemi rajzolási lehetőségek bemutatására szolgál. A rajzolás a jobboldali pnlright widget egyik lapjára rakott widgetre történik. A pnlright egy több lapot tartalmazó widget

Részletesebben

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Tartalom OOP ismétlés Osztályok létrehozása Adattagok láthatóságai, elnevezési ajánlások Konstruktor, destruktor this pointer Statikus és dinamikus

Részletesebben

Vizuális és eseményvezérelt programozás , II. félév BMF NIK

Vizuális és eseményvezérelt programozás , II. félév BMF NIK Vizuális és eseményvezérelt programozás 2006 2007, II. félév BMF NIK MDI szövegszerkesztő Az SDI és az MDI Szülő- és gyermekablakok Menürendszer MDI alkalmazáshoz A gyermekablakok elrendezése RichTextBox

Részletesebben

Hozzunk létre két rekordot a táblában, majd véglegesítsünk (commit):

Hozzunk létre két rekordot a táblában, majd véglegesítsünk (commit): Oracle adatbázis elérése A gyakorlat célja az, hogy a hallgató tapasztalatot szerezzen egy szerver oldali adatbázis kezelő rendszer elérésében, gyakorolja a vizuális eszközök és a kapcsolat nélküli (Disconnected

Részletesebben

Entity Framework alapú adatbáziselérés

Entity Framework alapú adatbáziselérés Entity Framework alapú adatbáziselérés Dr. Johanyák Zsolt Csaba http://johanyak.hu A gyakorlat célja Model-first megközelítéssel Entity-Framework modell létrehozása, majd ebből adatbázis generálása LocalDB-ben.

Részletesebben

3. Beadandó feladat dokumentáció

3. Beadandó feladat dokumentáció 3. Beadandó feladat dokumentáció Készítette: Giachetta Roberto E-mail: groberto@inf.elte.hu Feladat: Készítsünk adatbázis alapú, grafikus felületű alkalmazást egy apartmanokkal foglalkozó utazási ügynökség

Részletesebben

Integráció LadyBirddel

Integráció LadyBirddel Integráció LadyBirddel 1 A ShopRenter és a Ladybird integrációjához beállításokat kell eszközölnünk mind a ShopRenter, mind a LadyBird felületén. Elsőként a LadyBirdben kell elvégeznünk teendőinket, mert

Részletesebben

Í Í Í ű Í ö Ú Ú ö ö É ö ö Í É ö ö ő Á Ö ő ő Ü Í Í É Í Í É Í ö ú ö ú ö Í Á Á Ö Í

Í Í Í ű Í ö Ú Ú ö ö É ö ö Í É ö ö ő Á Ö ő ő Ü Í Í É Í Í É Í ö ú ö ú ö Í Á Á Ö Í ÍÜ ű Í Í Í Í ű Í ö Ú Ú ö ö É ö ö Í É ö ö ő Á Ö ő ő Ü Í Í É Í Í É Í ö ú ö ú ö Í Á Á Ö Í Ú ö Í Á ű Í ö Ü Í Í Í ű Ú Í ő ü Í ö ő É Í É ü ÉÍ ő Ü Ú É Í ő Í ű ü Í É Ü Ü Í Á Á Í Ü Í É Í Í É É É öí Í Í ö ú Í ú

Részletesebben

Pénzintézetek jelentése a pénzforgalmi jelzőszám változásáról

Pénzintézetek jelentése a pénzforgalmi jelzőszám változásáról Pénzintézetek jelentése a pénzforgalmi jelzőszám változásáról Felhasználói Segédlet MICROSEC Kft. 1022 Budapest, Marczibányi tér 9. telefon: (1)438-6310 2002. május 4. Tartalom Jelentés készítése...3 Új

Részletesebben

Ügyfélforgalom számlálás modul

Ügyfélforgalom számlálás modul Ügyfélforgalom számlálás modul 1 1. Bevezetés... 3 2. BEÁLLÍTÁSOK... 4 2.1. Új Kérdőív létrehozása... 4 o Kérdéstípusok és a hozzájuk tartozó lehetséges válaszok hozzárendelése... 4 Új Kérdéstípus felvitele...

Részletesebben

Elemi alkalmazások fejlesztése III.

Elemi alkalmazások fejlesztése III. Elemi alkalmazások fejlesztése III. Egy ablakos alkalmazás készítése II. C++ / Qt / KDevelop felhasználásával készítette: Szabóné Nacsa Rozália lektorálta: Párniczky Krisztina 1 Fájlkezelés Olvasás 2 A

Részletesebben

Felhasználói útmutató (Adott programverzióhoz érvényes)

Felhasználói útmutató (Adott programverzióhoz érvényes) CalcSystem Számlarendszer Felhasználói útmutató (Adott programverzióhoz érvényes) M City Kft. Miskolc Tel/fax: 46/ 560-268 Mobil: 30/9458-718 Felhasználói útmutató Menürendszer A mellékelt főmenü szerkezete

Részletesebben

ü ű í ú ű í É í Ö í ü Ö É í í Ö í É ú ú Ú í

ü ű í ú ű í É í Ö í ü Ö É í í Ö í É ú ú Ú í ű í ú ü ü É ü ü ü Ü É í Ü Ü í ü ű í ú ű í É í Ö í ü Ö É í í Ö í É ú ú Ú í í í ú É í í í í í É í í í Ü ű í Ü í ú ű ű í É í í ü ű ű í ú ű í í í í í ü í Ö í ú í ú í ü ű í ú í í í Ü Ü ü ú Ü É É É É É É ú ú

Részletesebben

Á ő ő ö é é ő ü ő ő é Ö é ő ü ő ő ő é ö é Á é é é é ó ó ó é ö é é őí ü ű ö é ö ő ő é ö é ö é ó Ő Ő ö é Ö ö ö é é é ű ö ő ó ö ö Ö ó ő ő é ü ö é é ü ű ö

Á ő ő ö é é ő ü ő ő é Ö é ő ü ő ő ő é ö é Á é é é é ó ó ó é ö é é őí ü ű ö é ö ő ő é ö é ö é ó Ő Ő ö é Ö ö ö é é é ű ö ő ó ö ö Ö ó ő ő é ü ö é é ü ű ö ü ú ö É Á ő ő ö é Ö ő ő é Ö ö ö Á ő ő ö é é ő ü ő ő é Ö é ő ü ő ő ő é ö é Á é é é é ó ó ó é ö é é őí ü ű ö é ö ő ő é ö é ö é ó Ő Ő ö é Ö ö ö é é é ű ö ő ó ö ö Ö ó ő ő é ü ö é é ü ű ö é ő é é í ó ó ó ö

Részletesebben

í Á Á í ÉÉ Á í í

í Á Á í ÉÉ Á í í í Á Á í ÉÉ Á í í í í Ő í í í ú í í Á í í Á Á Ú ú Á Á Á É Á Á Ó Á ű í Á í í í í í í í í ú í í í í Ó Á í Ó É í í í Á Í í í í Á í í íí í í í í í í Ú í Á í í É Ö ÖÉ É Ö Ű íí í í Ü í í í í í í í Ü Í í í íű

Részletesebben

ü ő ú í ő ö ő ő í ő ö ó ü ü í ő ő ö í Í í ó Í ő ő ö ö ü í ő í ö ü ő í ú í ö ü í Í Ő ő ő ő ő Ü ő ő ö ó ő ó ö Á Ó Ö Ü í ú ó ö ü ó ő ő ő í ó í í ö ó ö ó

ü ő ú í ő ö ő ő í ő ö ó ü ü í ő ő ö í Í í ó Í ő ő ö ö ü í ő í ö ü ő í ú í ö ü í Í Ő ő ő ő ő Ü ő ő ö ó ő ó ö Á Ó Ö Ü í ú ó ö ü ó ő ő ő í ó í í ö ó ö ó ü É ö Á Á ő É ö ö ő Ö ő ö Í ó ő ö ő í ö ö ó ő ö ü ő ó ö ó ő ő ö ő ő ő Ö ó í ó ó ó ö ő ő ó ő í ü ü ő ő ű ő ő ő ő ö ö ő ö ö ő ő ö í ö ü ű ö ő ú ö ő ó ó ö ó ö ö ű Ü ő Ü ő ó í ö ő ő Ó ü ő ö ó Ü ő ő í ö ő ő

Részletesebben

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015 Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015 8. ELŐADÁS Üzenetablakok, dialógusablakok MDI alkalmazások 2 Üzenetablakok Windows-os alkalmazásokban nagyon gyakran használt

Részletesebben

í ú ú Í í íí Öí Í ü ü í ú í í í í ű í í Ő í í úű

í ú ú Í í íí Öí Í ü ü í ú í í í í ű í í Ő í í úű Á Ö ÉÓ Á É Ü É í ü ü í ú í í Í í úű Íü í í í í É í í ú ü Í ú ú ú Í í ú ú Í í íí Öí Í ü ü í ú í í í í ű í í Ő í í úű í Í Í í É Í É É Í Í Í Ő Ö ü Ö í ü ü í ú Íí í É í ú üü í ü ü í í ú ü ú í ü í ü í ü ü Ö

Részletesebben

í í í É ü ü ű ö í ö ü ú ú í ú í ú í ű í ú í ö í ü ú ö ú í í ű í ü ű í ö ű ö

í í í É ü ü ű ö í ö ü ú ú í ú í ú í ű í ú í ö í ü ú ö ú í í ű í ü ű í ö ű ö ü ö Ö ü ö ö ü í ü ö ű ö ö ú í ö ö ö ö ű í ö ú ö ö ú ö í í í í É ü ü ű ö í ö ü ú ú í ú í ú í ű í ú í ö í ü ú ö ú í í ű í ü ű í ö ű ö ú ű ö ú ö ü ö í í í í ö ö ű ö í í ü ü ű ü ü ö ö ú ü Ö ö ü ö ö ű ö ö ö

Részletesebben

ü Á É Á Á Á É É ü É ő Á É Í Í É É É í é í ö í ü ö é ö ö é ú é é é é é é ő ő ő é É é é ü é é í é É É É é í ö é é é Í é í é é ö ü é í ö é é É í ö é é ú ű É ö é é ö ö é ö ö ö é í ö é É ö í é é ü é Á é ü

Részletesebben

3D-s számítógépes geometria és alakzatrekonstrukció

3D-s számítógépes geometria és alakzatrekonstrukció 3D-s számítógépes geometria és alakzatrekonstrukció Tesztkörnyezet I http://cg.iit.bme.hu/portal/node/312 https://portal.vik.bme.hu/kepzes/targyak/viiima01 Dr. Várady Tamás, Dr. Salvi Péter BME, Villamosmérnöki

Részletesebben

ö ü ü ö Ő ü í ü í ü ö ö Ö ó ö ö ö ö ó ö ö ö í ü í Ő Ü ü ö í Á í ü ü ü ö ű ú ö ö ü í Ü Ő ü ü ó ó ó ó í í ó í ö ú ü ü Ö Ö ű ó í ó ó ü ú ü ü ö í ó Ő Ü ó

ö ü ü ö Ő ü í ü í ü ö ö Ö ó ö ö ö ö ó ö ö ö í ü í Ő Ü ü ö í Á í ü ü ü ö ű ú ö ö ü í Ü Ő ü ü ó ó ó ó í í ó í ö ú ü ü Ö Ö ű ó í ó ó ü ú ü ü ö í ó Ő Ü ó ö ö Á É ü Ő Ö í ü í ü í ó ó ó í í ó í ö ú ü ü ö ö ű ó í ó ó ü ú ü ü ö í ö ü ü ö Ő ü í ü í ü ö ö Ö ó ö ö ö ö ó ö ö ö í ü í Ő Ü ü ö í Á í ü ü ü ö ű ú ö ö ü í Ü Ő ü ü ó ó ó ó í í ó í ö ú ü ü Ö Ö ű ó í ó ó

Részletesebben

DKÜ ZRT. A Portál rendszer felületének általános bemutatása. Felhasználói útmutató. Támogatott böngészők. Felületek felépítése. Információs kártyák

DKÜ ZRT. A Portál rendszer felületének általános bemutatása. Felhasználói útmutató. Támogatott böngészők. Felületek felépítése. Információs kártyák A Portál rendszer felületének általános bemutatása Felhasználói útmutató Támogatott böngészők Internet Explorer 9+ Firefox (legújabb verzió) Chrome (legújabb verzió) Felületek felépítése Információs kártyák

Részletesebben

és az instanceof operátor

és az instanceof operátor Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

ü ő ú í ő ö ő ő í ü ő ö ó Ü ü É ő ő ö Í ó Í ő ő ő ö ü í ő í ö í ú í ö ü í Ő ő ő ő ő í Ü ő ó ö ó ő ó Ö Ó ö í Ü í ó ú ó Ö Ü ó ő ő ő ő ő ü ó í í í ö ó ö

ü ő ú í ő ö ő ő í ü ő ö ó Ü ü É ő ő ö Í ó Í ő ő ő ö ü í ő í ö í ú í ö ü í Ő ő ő ő ő í Ü ő ó ö ó ő ó Ö Ó ö í Ü í ó ú ó Ö Ü ó ő ő ő ő ő ü ó í í í ö ó ö ü É ö Á Á ő É ö ö ő ú í Á ő ö ő Í ö ö ó ó ö ü ő ó ó í ő ő ö ő ó ó Ö ö í ó Ó Ó ö ó ó ő í Ü ü ő ő ű í ó őí ő ő í Ö ö ő ö í ö ő őí ö í Ó ö ü ű ö í í ő Í ú ö ó ő ő ö ő ó ö ö ö ű Ü ő í Ü ő ó ú ö ő ő Ó ü ő ö

Részletesebben

ű í Á É í Á Á úú Ö

ű í Á É í Á Á úú Ö ű í Á É í Á Á úú Ö í ö ÍÍ ü É Í í í ú Í É Á Á Í ő ü ö ü Á É ü ú ő ú ö í Á Í ú ü É É É ő ő ö ö ő ő ő ö ö ö ő ö ö Á Í ő ö ö í ő ő ő ö ö Á ö ő ö ö ő ő ö ő ö ö ő ö ő ő ö ö ö ü ő ö ö ö ő ö ö ő ö ö Í ü É É Á

Részletesebben

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

Objektumok inicializálása

Objektumok inicializálása Objektumok inicializálása Miskolci Egyetem Általános Informatikai Tanszék Objektumok inicializálása CPP4 / 1 Tartalom public adattagok inicializálása felsorolással konstruktor objektum tömbök osztály típusú

Részletesebben

Dokumentum létrehozása/módosítása a portálon:

Dokumentum létrehozása/módosítása a portálon: Dokumentum létrehozása/módosítása a portálon: 1. Belépés a szerkesztőfelületre A következő webcímre belépve - http://www.zalaegerszeg.hu/licoms/login - megjelenik a szerkesztőfelület beléptető ablaka,

Részletesebben

Mobil informatika gyakorlat. 2. óra: NFC a gyakorlatban

Mobil informatika gyakorlat. 2. óra: NFC a gyakorlatban Mobil informatika gyakorlat 2. óra: NFC a gyakorlatban Mi az NFC? Near Field Communication Rövid hatótávolságú rádiófrekvenciás technológia (tipikusan 5-10 cm) 13,56 MHz frekvencia Az ISO/IEC 14443 szabvány

Részletesebben

Belépés a GroupWise levelező rendszerbe az Internet felől

Belépés a GroupWise levelező rendszerbe az Internet felől 1 Belépés a GroupWise levelező rendszerbe az Internet felől A GroupWise levelező szolgáltatás web felelületről, az Internet felől az Egyetem honlapjáról is elérhető, az alábbi linken: www.uni-nke.hu WEBMAIL-NKE

Részletesebben

C++ programozási nyelv Konstruktorok-destruktorok

C++ programozási nyelv Konstruktorok-destruktorok C++ programozási nyelv Konstruktorok-destruktorok Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. szeptember A C++ programozási nyelv Soós Sándor 1/20 Tartalomjegyzék

Részletesebben

Web-technológia PHP-vel

Web-technológia PHP-vel Web-technológia PHP-vel A PHP programnyelv 2, futtatókörnyezet beálĺıtások Erős Bence February 26, 2013 Erős Bence () Web-technológia PHP-vel February 26, 2013 1 / 19 Szuperglobális változók $ GET : request

Részletesebben

OOP: Java 8.Gy: Abstract osztályok, interfészek

OOP: Java 8.Gy: Abstract osztályok, interfészek OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus

Részletesebben

Felhasználói segédlet a Scopus adatbázis használatához

Felhasználói segédlet a Scopus adatbázis használatához Felhasználói segédlet a Scopus adatbázis használatához Az adatbázis elérése, regisztrálás, belépés Az adatbázis címe: http://www.scopus.com Az adatbázis csak regisztrált, jogosultsággal rendelkező intézmények,

Részletesebben

ContractTray program Leírás

ContractTray program Leírás ContractTray program Leírás Budapest 2015 Bevezetés Egy-egy szerződéshez tartozó határidő elmulasztásának komoly gazdasági következménye lehet. Éppen ezért a Szerződés kezelő program főmenü ablakában a

Részletesebben

ő ö ó ü ü ó ö é é ó é ü é é ő ö ö Ö ó é é ó ö ó ő ö é ő ö é ő ö é ő ö é ő ó ó ó í é é ü ő í ö ö ö í é ő ü é ö é ő ő é é ó é ó ü ó é ő é é íé í ő é é é

ő ö ó ü ü ó ö é é ó é ü é é ő ö ö Ö ó é é ó ö ó ő ö é ő ö é ő ö é ő ö é ő ó ó ó í é é ü ő í ö ö ö í é ő ü é ö é ő ő é é ó é ó ü ó é ő é é íé í ő é é é Á ö ö Á É ó ü É ó ö í ü é é ő ö é Ö é ö é é é ő ó ó ö ó ő ó é ó í ö ú ö é é ó é é ő ő ő í ó é ó ő ó é é é ó ó ő ó é ó é é í ő é ü ö Ó ö ü ő ő í é é ó é é ő é ő ő ó é ó ő ó ö ö ő ó é ó ó ő í é ű é í é é

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. szeptember 25. 3. El adás User public class User { private String realname_; private String nickname_; private String password_; public User(String realname, String nickname)

Részletesebben

Java Programozás 11. Ea: MVC modell

Java Programozás 11. Ea: MVC modell Java Programozás 11. Ea: MVC modell 20/1 B ITv: MAN 2018.03.02 MVC Model-View-Controller A modell-nézet-vezérlő a szoftvertervezésben használatos szerkezeti minta. Az MVC célja elválasztani az üzleti logikát

Részletesebben

Mobil Telefonon Keresztüli Felügyelet Felhasználói Kézikönyv

Mobil Telefonon Keresztüli Felügyelet Felhasználói Kézikönyv Mobil Telefonon Keresztüli Felügyelet Felhasználói Kézikönyv Tartalomjegyzék 1. Symbian rendszer...2 1.1 Funkciók és követelmények...2 1.2 Telepítés és használat...2 2. Windows Mobile rendszer...6 2.1

Részletesebben

STL gyakorlat C++ Izsó Tamás május 9. Izsó Tamás STL gyakorlat/ 1

STL gyakorlat C++ Izsó Tamás május 9. Izsó Tamás STL gyakorlat/ 1 STL gyakorlat C++ Izsó Tamás 2016. május 9. Izsó Tamás STL gyakorlat/ 1 Komponensek kapcsolata Deklarálja az alábbi osztálydiagramon szereplő osztályok közül az A, AA és AB osztályokat! A konstruktorokat

Részletesebben

GLS címke kezelő bővítmény GLS online-hoz

GLS címke kezelő bővítmény GLS online-hoz GLS címke kezelő bővítmény GLS online-hoz A bővítmény csak Opeancart 2.2 és 2.3 verziókhoz elérhető, csak magyar nyelven! Általános ismertető: A GLS Online a http://online.gls-hungary.com weboldalon elérhető

Részletesebben

ő ó ű í ú é é é ö é é ő ü ű Ö ő é ő ű é é ő ó ü é é Ő í í ó ö ó é ö é ő ű ö é é é ö é í é é é ő é é é ő é é ű ö é é Ó Ó é é é ó í ü ú í é é é é é í ö

ő ó ű í ú é é é ö é é ő ü ű Ö ő é ő ű é é ő ó ü é é Ő í í ó ö ó é ö é ő ű ö é é é ö é í é é é ő é é é ő é é ű ö é é Ó Ó é é é ó í ü ú í é é é é é í ö ó Á ú í é é é ö é Ö ő é é ő é ű ó ö é é é é é é ö é é é é ú ö é é é é ő é ő é ö é í ó é é Ö é ö é é ő é é é é ö ő é é é é é Íé ő ö é é ő ő é é í é ó ö ő é é é ó ö é é í ő ö é ú ö ö é ó ó Á í ü ő ö é ü

Részletesebben

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben? 1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben? 3. Ismertesse a névtér fogalmát! 4. Mit értünk a "változó hatóköre"

Részletesebben

ő é ü Ó Ó ö é Ó Ó ú Ó ö é é í é ü í é ü í ö éí íé é é é é í ő í é é é é ő ö ö é é ü ú ö é í é ü ú ő é í é é é é é é ő é é é é é é é ő é é é é Ó Ó é ü

ő é ü Ó Ó ö é Ó Ó ú Ó ö é é í é ü í é ü í ö éí íé é é é é í ő í é é é é ő ö ö é é ü ú ö é í é ü ú ő é í é é é é é é ő é é é é é é é ő é é é é Ó Ó é ü é ú Ö Ó é ú é é ú ö é é ő é é é ő ü é é é ö é é ő é ő é é é é é ű í ö é í é é é é é ö ö é ú Ó ő Ó ő í ü ő ü é é ü í ő é é ő ő é é é í ő í é é é é ő ü é é é é ö ő é ő Ó ő ö é ő ő ő í é ő é é Ó ö é ő ő é

Részletesebben

Órarendkészítő szoftver

Órarendkészítő szoftver SchoolTime Órarendkészítő szoftver 2.0 verzió Tartalomjegyzék: 1., Belépés a programba...3 2., Órarend főtábla...3 3., Tanátok...4 3.1., Új tanár felvitele, módosítása...4 3.2., Tanár törlése...4 3.3.,

Részletesebben

é ü ü ő ü ő é ú é é é é é ő í é ő Í ő ü é é í é í é ő í ó é é í é é ő ó í ó é í í é ő Í ú ó ó í é ű í ó é í é ő é é í ó é í í óé í éé ő ó ü é ő úé é ú

é ü ü ő ü ő é ú é é é é é ő í é ő Í ő ü é é í é í é ő í ó é é í é é ő ó í ó é í í é ő Í ú ó ó í é ű í ó é í é ő é é í ó é í í óé í éé ő ó ü é ő úé é ú é é ő ü é í ó é é ő Í Í é é é é óó ó é é Í Á é é í í é ő é é í é é é é é é ü é é ü é é é é ő é ő é é ő ü ü é é é é é é é í ő é é ű é é ü ü ő é é ő é é é ő é é ő ó ó é ő ü é Ú é ü é é ű é é í é í é é í

Részletesebben

Felhasználó által definiált adattípus

Felhasználó által definiált adattípus Felhasználó által definiált adattípus C++ Izsó Tamás 2017. február 24. Izsó Tamás Felhasználó által definiált adattípus/ 1 Irodalom Izsó Tamás Felhasználó által definiált adattípus/ 2 Programtervezési

Részletesebben

Vidux DVR and CMS Release Notes update from 4.2.0 to 4.2.1. Verziókövetési jegyzet

Vidux DVR and CMS Release Notes update from 4.2.0 to 4.2.1. Verziókövetési jegyzet Vidux DVR and CMS Release Notes update from 4.2.0 to 4.2.1 hu Verziókövetési jegyzet 2009. 05. v.4.2.1 Verziókövetés 2. oldal, összesen: 12 Vidux Technologies TARTALOMJEGYZÉK VÁLTOZÁSOK A VIDUX DVR FELÜLETEN

Részletesebben

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat Szimuláljuk különféle élőlények túlélési versenyét. A lények egy pályán haladnak végig, ahol váltakozó viszonyok vannak. Egy lénynek

Részletesebben

ű ö í ő í ü ö ü ü ó ő ú í ö ö Ü ö ő ó ó ö ő ü í í ó ő ó í ó ű ó í í ö ő ő ő ö ű ű ó í ó ő í ő ó í ó í ő í í Í í ö

ű ö í ő í ü ö ü ü ó ő ú í ö ö Ü ö ő ó ó ö ő ü í í ó ő ó í ó ű ó í í ö ő ő ő ö ű ű ó í ó ő í ő ó í ó í ő í í Í í ö í í ó ó ü ű ö ű ö í ő í ü ö ü ü ó ő ú í ö ö Ü ö ő ó ó ö ő ü í í ó ő ó í ó ű ó í í ö ő ő ő ö ű ű ó í ó ő í ő ó í ó í ő í í Í í ö ő í í ó ü í ó ő í í ö ó ő í ű ő ű í ó í ű ú ó í ö ő ó ű ő ú í í í ó ö ö ü

Részletesebben