Grafikus Qt programok írása segédeszközök nélkül
|
|
- Vince Orbán
- 6 évvel ezelőtt
- Látták:
Átírás
1 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 a QtCreator és a QtDesigner segítségével. Ezzel azért foglalkozunk, hogy megismerjük a Qt grafikus elemek jellegzetességeit. A grafika egy ún. Grafikus Felhasználói Felületen (Graphical User Interface GUI) jelenik meg. Ilyen van a Windows-ban a Linuxban, a Mac-eken és a mobil eszközökön. Az eseményhurok (event loop) A QApplication::exec() az esemény hurok, vagy ciklus. Minden Qt-s grafikus program tartalmaz egy ilyet. Ezt többnyire egy külön fájlba (pl. main.cpp) helyezzük el A legegyszerűbb esetben ez a fájl így néz ki: #include "saját_include_fájlunk.h" #include <QApplication> int main(int argc, char *argv[]) QApplication a(argc, argv); AlapWidgetünk w; // pl. a QDialog-ból leszármaztatott widget, de lehet // akár egy QLabel is w.show(); // kirajzolja az AlapWidget-et, de az még nem jelenik meg // csak amikor feldolgozzuk a kirajzolási üzeneteket return a.exec(); // itt az eseményhurokban Az AlapWidgetünk declarációja a saját_include_fájlunk.h fájlban van. Az eseményhurok feladata az operációs rendszerből származó felhasználó, vagy programok által generált események (pl. gombnyomás, egérműveletek,érintés, kirajzolás) kezelése. A Qt események olyan objektumok, amelyek vagy az alkalmazáson belüli történéseket, vagy olyan külső történéseket (pl gombnyomás, egérmutató mozgatás) reprezentálnak, amelyekről az alkalmazásnak tudnia kell. Amikor egy esemény történik a Qt rendszer létrehoz egy azt reprezentáló objektumot és elküldi azt a programunk valamelyik objektumának. Háromféle esemény van: spontán események Az ablakkezelő rendszer generálja. A rendszer sorba állítja ezeket, ahonnan egymás után kerülnek az eseményhurokba POST-olt események Qt, vagy az alkalmazás generálja ezeket. A Qt állítja ezeket sorba és helyezi be egymás után az esemény ciklusba feldolgozásra Közvetlen (SENT) események Qt, vagy az alkalmazás generálja ezeket és közvetlenül a fogadó objektum-nak küldjük el, ez nem kerül be a sorba.
2 Az eseményeket leszármaztatott osztályokban magunk is lekezelhetjük. Ha pl. azt akarjuk, hogy egy címke méretezésével annak betűmérete is nőjön, akkor a QLabel resizeevent függvényét kell átdefiniáljuk. Ehhez a QLabel-ből leszármaztatunk egy másik objektumot, amelyben lekezeljük a méretváltoztatást és azt használjuk a QLabel helyett: Class QMyLabel : public QLabel Q_OBJECT void resizeevent(qresizeevent *event) QFont f = font(); f.setpointsizef( f.pointsize()f * (event->oldsize().height()/size().height() ); setfont(f);
3 Widget-ek Minden grafikus Qt program ún. widget-eken alapul. Ezek megjeleníthető grafikus komponenseket 1 (pl. gombok, cimkék, szövegbeviteli mezők) tartalmazó egyszerű, vagy összetett objektumok. Szerepelhetnek önállóan a képernyőn ahogy azt láttuk, de más widgetek részeként is. A legtöbb widget valamely más widgethez, a szülőjéhez (párent) tartozik, abban jelenik meg. Minden widget a QWidget-ből van leszármaztatva, ami maga viszont a QObject-ből. A QObject-nek sok hasznos tulajdonsága van, amit a widgetek-ben is használhatunk. Egy különösen hasznos tulajdonsága, hogy tetszőleges számú és nevű saját mezőt (property) adhatunk hozzá. Amikor leszármaztatunk egy widget-et egy másikból az osztály deklaráció elejére mindig be kell írni a Q_OBJECT makrót, különben nem lesz érvényes widget-ünk! Az első saját grafikus objektum, amit megjelenítünk a képernyőn rendszerint vagy a QMainWindow, vagy a QDialog widgetből leszármaztatott saját widget-ünk. Azért kell ezekből leszármaztatni saját widget-eket, hogy hozzájuk adhassuk a saját widget-jeinket. A widget-ek méretét és a befoglaló widget-hez (parent), vagy ha ilyen nincs - a képernyőhöz képesti helyzetét a geometriája (lekérdezése: QRect rect = widget.geometry(), beállítása widget.setgeometry( rect)) adja meg. A rect tartalma: x, y, szélesség, magasság, az x,y koordináták a szülő bal felső sarkához képest értendőek 2. Egyebek között minden widgethez tartozik még egy minimális és egy maximális méret (szélesség, magasság), egy betű fajta (font név, méret, stílus), valamint egy stíluslap (style sheet). Ha a minimális és maximális méretek megegyeznek a widget nem méretezhető át. Ez jól használható pl. a fő, vagy dialógus ablakoknál. Példaként készítsünk egy jegyzetfüzet programot, amibe szabadon írhatunk szövegeket! A jegyzetfüzet így fog kinézni: 1 Ha a szülő widget nem látható, akkor természetesen a benne levők sem, de a benne levő widget-eket el is rejthetjük. 2 Az x tengely vízszintesen jobb, az y tengely függőlegesen lefelé mutat.
4 A tervezésnél kétféleképpen járhatunk el. 1. gondosan megtervezzük kockás papíron és minden méretet manuálisan állítunk be. Ha azt szeretnénk azonban, hogy az ablak mérete változtatható legyen és ekkor a jegyzetfüzet szerkesztő része az aktuális ablakkal nőjön, vagy csökkenjen, akkor ez nem igazán jó út. Akkor is gond lehet, ha a képernyőfelbontás, vagy a képernyő betűmérete megváltozik. 2. Megvalósítjuk az elrendezést úgy, hogy a szükséges méreteket a rendszer számolja ki nekünk. Ehhez elrendezéseket (layout-okat) használhatunk. Az elrendezések nem widget-ek, mert maguk nem jelennek meg a képernyőn. Mi a 2. utat fogjuk követni. Van vízszintes (horizontal), függőleges (vertical), rács (grid) és nyomtatvány (form) elrendezés. Az utolsóban az elemeket páronként sorokba rendezi el a Qt. Minden sorba két elem (pl. szöveg és beviteli mező) kerül. Bármelyik elrendezés esetén az ablak méretének változtatásával az elemek mérete is változik. Első ránézésre a függőleges elrendezést választanánk, kezdjük tehát azzal!
5 Mindenekelőtt hozzunk létre egy alkönytárat a saját könyvtárunkban. Legyen a neve npad! Hozzuk létre a következő fájlokat: main.cpp, notepad.h, notepad.cpp: Main.cpp #include "notepad.h" #include <QApplication> int main(int argc, char *argv[]) QApplication a(argc, argv); Notepad w; // AlapWidgetünk most a Notepad a notepad.h-ból w.show(); return a.exec(); Notepad.h A fájl ezzel kezdődik: ifndef NOTEPAD_H #define NOTEPAD_H Ezzel a két sorral elérjük, hogy a header csak egyszer kerüljön feldolgozásra. A záró #endif a fájl legvégére kerül. Becsatoljuk az összes widget include fájlját: #include <QMainWindow> #include <QtWidgets/QPushButton> #include <QtWidgets/QTextEdit> #include <QtWidgets/QWidget> #include <QtWidgets/QVBoxLayout> A QVBoxLayout tartalmazza a függőleges elrendezést. Minden widget az Ui namespace része, ezért a mi új widgetünk is oda tartozik: namespace Ui class Notepad; Amikor egy widgetet származtatunk le egy másikból, mindig meg kell mondani, hogy az a QObject leszármazottja. Ezt a Q_OBJECT makróval tesszük meg. class Notepad : public QMainWindow Q_OBJECT A nyilvános részbe csak a konstruktor és a destruktor kerül. A widget-ek (és a QMainWindow is egy widget) konstruktorában adjuk meg azt a szülő (parent) widget et, aminek az ablakába
6 ez a widget megjelenik majd. Ez a mi esetünkben egy nullptr 3 lesz, mert az ablakunk a fő ablak.. public: explicit Notepad(QWidget *parent = 0); ~Notepad(); A private részbe kerülnek a widget-eink és a grafikát felépítő függvény: private: A QMainWindow-nak szüksége van egy speciális widgetre, ami tulajdonképpen az összes elem szülője lesz. Ez a centralwidget. A többi widget: QWidget *centralwidget; QBoxLayout *vertlayout; QTextEdit *edtnote; QPushButton *btnclose; Az ablakot fel kell építeni, hozzá kell adjuk az összes widget-et. Ezt a void setupui(); függvény végzi majd el. SIGNAL-ok és SLOT-ok Mikor a bezárás gombot megnyomjuk az ablaknak be kell záródnia. A gombnyomás is egy esemény, és azt szeretnénk, hogy ezt az eseményt a fő ablak kapja meg. Két widget egymással a signals and slots mechanizmuson keresztül beszélget. Az egyes signal-okat és slot-okat explicit módon a connect() függvénnyel kapcsoljuk majd össze. Jelen esetben azt akarjuk, hogy amikor a btnclose gombra kattintunk 4, akkor a fő ablaknak egy függvénye (hívjuk pl. btncloseclicked()-nek) hívódjon meg amivel az bezárja magát 5. Ehhez a btncloseclicked() függvényt a fő ablak fogadóhelyévé (slot-jává) kell tegyük. 3 A nullptr a C++11-ben bevezetett kulcsszó. Jelentése megegyezik a korábbi NULL define-éval. 4 Vagy billentyűzettel benyomták, amit ebben a példában nem valósítunk meg. 5 Tehát nem a gomb zárja be az ablakot, hanem az saját magát.
7 Ehhez ezt kell beírjuk: private slots: void btncloseclicked() close(); A slots kulcsszót a C++ fordító program nem látja, az egy Qt kiegészítés, amire most semmi szükség nem lenne, de szokjuk meg, hogy oda írjuk, mert a későbbiekben használni fogjuk. Zárjuk be az osztálydeklarációt és a fájlt! ; #endif // NOTEPAD_H A következő fájl a notepad.cpp Notepad.cpp Ez a header fájl beolvasásával kezdődik, amit a konstruktor követ:. include "notepad.h" Notepad::Notepad(QWidget *parent) : QMainWindow(parent) setupui(); A konstruktorban felépítjük a felhasználói felületet. Mint látni fogjuk az egyes widget-eket a new operátorral hozzuk létre, ezért azt hinnénk, hogy kilépés előtt fel is kell szabadítsuk őket, de erre nincs szükség. A szülő (parent) widgetek gondoskodnak minderről 6. A destruktor ezért most nem csinál semmit: Notepad::~Notepad() A felhasználói felület elkészítését a setupui() függvény végzi: void Notepad::setupUi() Állítsuk be az ablak (kezdő) méretét 400 x 300 pixelre: resize(400, 300); 6 Természetesen a new-val dinamikusan létrehozott saját (nem QTs) objektumainkat, illetve azokat a Qts objektumokat, amiket nem adunk hozzá más QTs objektumokhoz nekünk kell felszabadítanunk!
8 Az ablak pozícióját nem adjuk meg, azt az operációs rendszer fogja meghatározni. Közvetlenül egy QMainWindow-hoz (tehát a belőle leszármaztatott Notpead-hez sem) nem adhatunk hozzá widge-eket, ezért ehhez szükségünk lesz egy speciális szerű widget-re. Ezt nevezzük mondjuk centralwidget-nek, mert majd a setcentralwidget() függvénnyel adjuk hozzá a Notepad-hez. centralwidget = new QWidget(this); Beállítjuk a centralwidgettet az ablakhoz, ezzel érjük el, hogy a widget-jeink megjelenhessenek: setcentralwidget(centralwidget); Minden más widget a centralwidet-re kerül, ezért a centralwidget hez kapcsoljuk a layoutot, amelyet úgy állítunk be, hogy legyen egy 11 pixeles margója az elemek körül és az elemek egymástól 6 pixelre legyenek: vertlayout = new QVBoxLayout(centralWidget); vertlayout->setspacing(6); vertlayout->setcontentsmargins(11, 11, 11, 11); Elkezdjük hozzáadni a widget-eket. Minden widget a fő ablak centralwidget-ében jelenik meg, ezért mindegyik szülője az lesz. De a widgetet a layouthoz is hozzá kell adni, mert az fogja a méretét és a helyét meghatározni. A layout viszont nem lesz szülője a widgeteknek 7. Minden widget létrehozásakor megadjuk a szülőjét és, hozzácsatoljuk a layouthoz: edtnote = new QTextEdit(centralWidget); vertlayout->addwidget(edtnote); btnclose = new QPushButton(centralWidget); btnclose->settext("&bez\303\241r\303\241s"); // &Bezárás UTF8 kódolással vertlayout->addwidget(btnclose); Ezután megmondjuk az ablaknak, hogy a gomb benyomására zárja be magát. A connect függvénnyel összekapcsoljuk egy adott widget (itt btnclose) valamelyik signal-ját (itt clicked() ) a fogadó widget (Notepad-tehát ez az objektum) adott slot-jával (btncloseclicked()) A signal elküldését megcsinálja a gomb. Az lenne jó, ha ezt írhatnánk: connect( btnclose, clicked, this, btncloseclicked ), de ezt a C++ szabályai nem engedik. A connect függvény mutatókat vár, de sem a QPushButton::clicked() sem a btncloseclicked() mindkettő void - nem ad ilyet vissza. Még azt sem írhatnánk, hogy 7 Egyrészt a layout nem widget, másrészt egy widget-nek csak egy szülője lehet.
9 QPushButton::clicked, ugyanis a clicked() nem egy nem sztatikus függvénye a nyomógombnak, ezért nem lehet meghívni konkrét objektum nélkül. A függvény törzsére mutató mutató azonban megadható, hiszen a függvények minden objektumra ugyanazok 8 : connect( btnclose, &QPushButton::clicked, this, &Notepad::btnCloseClicked ); // setupui Most már csak a projekt és Makefile-t kell elkészíteni: Npad.pro és Makefile Qmake-qt5 -project Ismét bele kell javítsunk az npad.pro fájlba. Adjuk hozzá a következő két sort: QT += core gui widgets QMAKE_CXXFLAGS += -std=c++11 A többi már egyszerű: qmake-qt5 make Futtassuk a programot:./npad&. Ez nem egészen azt produkálja, amit vártunk: Az ablak ugyan méretezhető és a gomb magassága sem változik, de a gomb az egész ablak szélességét elfoglalja. Ez a függőleges elrendezés tulajdonsága. Ahhoz, hogy a gomb a jobb oldalon maradjon és a mérete se változzon egyfelől a függőleges elrendezést rácsosra kell cseréljük, másfelől használnunk kell egy láthatatlan elemet a vízszintes térkitöltőt (horizontal 8 Emlékezzünk arra, hogy minden nem sztatikus tagfüggvény vár egy, az aktuális objektumra mutató mutatót (pointert) mint rejtett paramétert. A connect-re később más lehetőségeket is megismerünk majd. Ezekről akkor fogunk beszélni, amikor a QtCreatort/QtDesigner-t használjuk.
10 spacer). Ez egy olyan elem, ami addig nyúlik, ameddig szükséges és ezért az ablak méretének változásával a többi elem méretét a layout nem fogja megváltoztatni 9. A változtatások: A notepad.h-ban az #include <QtWidgets/QVBoxLayout> sort cseréljük le #include <QtWidgets/QGridLayout> -ra és a QVBoxLayout-ot cseréljük le QGridLayout-ra: QGridLayout *gridlayout; a QPushButton elé pedig szúrjuk be ezt: QSpacerItem *horizontalspacer; A notepad.cpp-ben a setupui()-t cseréljük le a következőre: void Notepad::setupUi() resize(400, 300); centralwidget = new QWidget(this); gridlayout = new QGridLayout(centralWidget); gridlayout->setspacing(6); gridlayout->setcontentsmargins(11, 11, 11, 11); edtnote = new QTextEdit(centralWidget); gridlayout->addwidget(edtnote, 0, 0, 1, 2); horizontalspacer = new QSpacerItem(295, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); gridlayout->additem(horizontalspacer, 1, 0, 1, 1); btnclose = new QPushButton(centralWidget); btnclose->settext("&bez\303\241r\303\241s"); gridlayout->addwidget(btnclose, 1, 1, 1, 1); setcentralwidget(centralwidget); connect( btnclose, &QPushButton::clicked, this, &Notepad::btnCloseClicked ); 9 Természetesen van függőleges térkitöltő (vertical spacer) is. Sok esetben azonban a kívánt elrendezés még ezekkel sem érhető el, ilyenkor plusz widget-eket is kell használnunk.
11 Látható, hogy a rácsos elrendezésben az addwidget() hívásokban újabb szám paraméterek jelentek meg. A szintaxis a következő: QGridLayout::AddWidget(QWidget *widget, int fromrow, int fromcolumn, int rowspan, int columnspan, Qt::Alignment alignment = Qt::Alignment()) Az első két paraméter az elem kezdő oszlopa és sora a rácsban, a második kettő pedig, hogy hány sorra, ill. oszlopra terjed ki az elem. Az utolsó paramétert alapértelmezettnek hagyjuk. Már csak egy make parancs és az npad program készen van és futtattható.
12 A teljes program main.cpp #include "notepad.h" #include <QApplication> int main(int argc, char *argv[]) QApplication a(argc, argv); Notepad w; w.show(); return a.exec(); notepad.h #ifndef NOTEPAD_H #define NOTEPAD_H #include <QtCore/QVariant> #include <QtWidgets/QGridLayout> #include <QtWidgets/QMainWindow> #include <QtWidgets/QPushButton> #include <QtWidgets/QSpacerItem> #include <QtWidgets/QTextEdit> #include <QtWidgets/QWidget> #include <QMainWindow> namespace Ui class Notepad; class Notepad : public QMainWindow Q_OBJECT public: explicit Notepad(QWidget *parent = 0); ~Notepad(); private: QWidget *centralwidget; QGridLayout *gridlayout; QTextEdit *edtnote; QSpacerItem *horizontalspacer; QPushButton *btnclose; void setupui(); private: void btncloseclicked() close(); ; #endif // NOTEPAD_H notepad.cpp #include "notepad.h"
13 Notepad::Notepad(QWidget *parent) : QMainWindow(parent) setupui(); Notepad::~Notepad() void Notepad::setupUi() resize(400, 300); centralwidget = new QWidget(this); setcentralwidget(centralwidget); gridlayout = new QGridLayout(centralWidget); gridlayout->setspacing(6); gridlayout->setcontentsmargins(11, 11, 11, 11); edtnote = new QTextEdit(centralWidget); gridlayout->addwidget(edtnote, 0, 0, 1, 2); horizontalspacer = new QSpacerItem(295, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); gridlayout->additem(horizontalspacer, 1, 0, 1, 1); btnclose = new QPushButton(centralWidget); btnclose->settext("&bez\303\241r\303\241s"); gridlayout->addwidget(btnclose, 1, 1, 1, 1); //if (!connect(btnclose, SIGNAL(clicked()), this, SLOT(btnCloseClicked()))) // // edtnote->append("no valid connection to button"); // if(!connect( btnclose, &QPushButton::clicked,this, &Notepad::btnCloseClicked)) edtnote->append("no valid connection to button"); // setupui notepad.pro ###################################################################### # Automatically generated by qmake (3.0) V szept :08: # javításokkal ###################################################################### TEMPLATE = app TARGET = npad INCLUDEPATH +=. # Input HEADERS += notepad.h SOURCES += main.cpp notepad.cpp QT += core gui widgets
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észletesebbenElemi 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észletesebbenElemi 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észletesebbenAlkalmazá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észletesebbenEgysé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észletesebbenElemi 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észletesebbenQLabel *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észletesebbenTervező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észletesebbenElemi 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észletesebbenBudapest, 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észletesebbenElemi 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észletesebben2. Beadandó feladat dokumentáció
2. Beadandó feladat dokumentáció Készítette: Giachetta Roberto E-mail: groberto@inf.elte.hu Feladat: Készítsünk programot a következő memóriajátékhoz. A játéktáblán mező foglal helyet, amelyek különböző
Részletesebben3. 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észletesebbenQT Grafika Az alap alkalmazás felhasználói felülete
QT Grafika Az alap alkalmazás felhasználói felülete Az alábbiakban létrehozzuk azt a GUI-t, amit a továbbiakban használni fogunk. Ennek során áttekintünk néhány hasznos GUI elemet és azok használatát.
Részletesebben2. Beadandó feladat dokumentáció
2. Beadandó feladat dokumentáció Készítette: Giachetta Roberto E-mail: groberto@inf.elte.hu Feladat: Készítsünk programot a következő memóriajátékhoz. A játéktáblán mező foglal helyet, amelyek különböző
RészletesebbenA 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észletesebben3D-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észletesebben3D-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észletesebbenElemi 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észletesebbenGrafikus felületek készítése 1.
Grafikus felületek készítése 1. SWT Budapes( Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Grafikus felületek fejlesztése Java grafikus toolkitek o AWT Na>v widgetek
RészletesebbenFeladat. Tervezés és implementálás
Tartalomjegyzék FELADAT...2 Elvárások...2 TERVEZÉS ÉS IMPLEMENTÁLÁS...2 Megjelenési terv...2 Grafikus felület készítése...3 Modulszerkezet...3 Osztály diagram...3 MillMain form...4 Vezérlő k elrendezése...4
RészletesebbenProgramozás C++ -ban
Programozás C++ -ban 4. Bevezetés az osztályokba 4.1 Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több
RészletesebbenGrafikus Felhasználói Felületű (GUI) program készítése a QT Creatorral, illetve a Microsoft Visual Studio-val
Grafikus Felhasználói Felületű (GUI) program készítése a QT Creatorral, illetve a Microsoft Visual Studio-val A feladat A feladat egy kis számológép elkészítése. A számológép a következőképpen néz majd
RészletesebbenProgramozás C++ -ban 2007/4
Programozás C++ -ban 2007/4 1. Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több szempontból is hasznos
RészletesebbenKét csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később).
Grafikus felhasználói felület Két csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később). Mi hogyan használjuk? awt: eseménykezelés,
RészletesebbenEseménykezelés. Aszinkron kommunikáció
Eseménykezelés Aszinkron kommunikáció Feladat Készítsünk egy stoppert, amely másodpercenként jelzi a múló időt. Ez a folyamat egy adott jelzés hatására induljon el; ugyanezen jelzés ismétléseinek hatására
RészletesebbenProgramozás II gyakorlat. 4. Öröklődés
Programozás II gyakorlat 4. Öröklődés Feladat Egy játékfejlesztő cég olyan programot fejleszt, amely nyilvántartja az alkalmazottai adatait. Tároljuk minden személy: Nevét (legfeljebb 50 karakter) Születési
RészletesebbenElemi 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észletesebbenMySql 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észletesebbenElemi 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észletesebbenProgramozás II gyakorlat. 6. Polimorfizmus
Programozás II gyakorlat 6. Polimorfizmus Típuskonverziók C-ben: void * ptr; int * ptr_i = (int*)ptr; Ez működik C++-ban is. Használjuk inkább ezt: int * ptr_i = static_cast(ptr); Csak egymással
RészletesebbenOsztályok. 4. gyakorlat
Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum
RészletesebbenOsztály és objektum fogalma
Osztály és objektum fogalma A C++ programozási nyelv I. CPP1/ 1 Az osztály (class) class: adatok és módszerek (method) (függvények) együttese, amely absztrakt adattípusként működik. objektum: egy osztály
RészletesebbenMiutá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észletesebbenProgramozás II. 4. Dr. Iványi Péter
Programozás II. 4. Dr. Iványi Péter 1 inline függvények Bizonyos függvények annyira rövidek, hogy nem biztos hogy a fordító függvényhívást fordít, hanem inkább az adott sorba beilleszti a kódot. #include
RészletesebbenObjektumok és osztályok. Az objektumorientált programozás alapjai. Rajzolás tollal, festés ecsettel. A koordinátarendszer
Objektumok és osztályok Az objektumorientált programozás alapjai Rajzolás tollal, festés ecsettel A koordinátarendszer A vektorgrafikában az egyes grafikus elemeket (pontokat, szakaszokat, köröket, stb.)
RészletesebbenC++ 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észletesebbenC programozási nyelv Pointerek, tömbök, pointer aritmetika
C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek
RészletesebbenProgramozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 8. előadás Visszatekintés A Windows Console alkalmazások egy karakteres képernyőt biztosítottak, ahol a kimenet a kiírt szöveg, míg a bemenet a billentyűzet volt.
RészletesebbenQt rajzolás munkafüzet. Elemi Alkalmazások fejlesztése 3.
Qt rajzolás munkafüzet Elemi Alkalmazások fejlesztése 3. 1. fejezet Impresszum Qt rajzolás munkafüzet (C)2006 Zimler Attila Tamás Visszajelzéseket szivesen fogadok. A munkafüzet
RészletesebbenBevezetés a Python programozási nyelvbe
Bevezetés a Python programozási nyelvbe 7. Gyakorlat osztályok, objektumok (utolsó módosítás 2018. aug. 28.) Szathmáry László Debreceni Egyetem Informatikai Kar 2018-2019, 1. félév OO programozás Pythonban
RészletesebbenProgramozá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észletesebbenBevezetés a programozásba előadás: Öröklődés
Bevezetés a programozásba 2 5. előadás: Öröklődés emlékeztető Tagfüggvény struct koord { double x,y,r; void set(double ux, double uy) { x=ux; y=uy; r=sqrt(x*x+y*y); } Használat: koord k; k.set(4,5); Egységbezárás
Részletesebbenif(_param.antialias) painter.setrenderhint(qpainter::antialiasing, true);
Elmosás (antialias) struct RajzParameterek int penwidth = 1; Qt::PenStyle penstyle = Qt::SolidLine; Qt::PenCapStyle pencap = Qt::FlatCap; Qt::PenJoinStyle penjoin = Qt::MiterJoin; Qt::BrushStyle brushstyle
RészletesebbenBevezetés a programozásba II 1. gyakorlat. A grafikus könyvtár használata, alakzatok rajzolása
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba II 1. gyakorlat A grafikus könyvtár használata, alakzatok rajzolása 2014.02.10. Giachetta Roberto groberto@inf.elte.hu
RészletesebbenJava és web programozás
Budapesti M szaki Egyetem 2015. 03. 18. 6. El adás Graka Java-ban Emlékezzünk kicsit vissza a tikz-re: \begin{tikzpicture \draw (0,0) node[draw,circle] (S) {s; \draw (3,2) node[draw,circle] (A) {a; \draw
RészletesebbenJohanyá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észletesebbenESEMÉNY VEZÉRELT ALKALMAZÁSOK FEJLESZTÉSE I. Bevezetés. Készítette: Gregorics Tibor
ESEMÉNY VEZÉRELT ALKALMAZÁSOK FEJLESZTÉSE I. Bevezetés Készítette: Gregorics Tibor Előfeltétel: OAF (EAF2) Kötelező házi feladatok: 4 darab feladat max. 5-5 pontért Feltételek 2 hét késés: legfeljebb 3
Részletesebben3. 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 programot a közismert Tic-Tac-Toe játékra. Ebben a játékban a játékosok egy -as játékmezőn
RészletesebbenGrafikus felhasználói felületek. Dr. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Dr.
Programozási Grafikus Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 2 Grafikus felhasználói felület Két csomag elemeiből lehet a felületet elkészíteni awt: heavy weight" komponensek swing:
RészletesebbenSwing 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észletesebbenProgramozás II gyakorlat. 8. Operátor túlterhelés
Programozás II gyakorlat 8. Operátor túlterhelés Kezdő feladat Írjunk egy Vector osztályt, amely n db double értéket tárol. A konstruktor kapja meg az elemek számát. Írj egy set(int idx, double v) függvényt,
RészletesebbenElemi 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észletesebbenVálasztó lekérdezés létrehozása
Választó lekérdezés létrehozása A választó lekérdezés egy vagy több rekordforrásból származó adatokat jelenít meg. A választó lekérdezések a táblák, illetve az adatbázis tartalmát nem változtatják meg,
RészletesebbenTájékoztató. Használható segédeszköz: -
A 35/2016. (VIII. 31.) NFM rendelet szakmai és vizsgakövetelménye alapján. Szakképesítés, azonosító száma és megnevezése 54 481 06 Informatikai rendszerüzemeltető Tájékoztató A vizsgázó az első lapra írja
Részletesebben4. Öröklődés. Programozás II
4. Öröklődés Programozás II Mielőtt belevágunk Egy Tárgy típusú objektumokat tároló tömb i. elemében tároljunk el egy új tárgyat Rossz módszer: tomb[i].setnev( uj.getnev() ); tomb[i].setertek( uj.getertek()
RészletesebbenElemi alkalmazások fejlesztése
Egyablakos alkalmazás készítése II...2 Osztályszerkezet...3 Modulszerkezet...3 A kérdés rekord felépítése: Question...4 A kérdéssor típus: QuestionIterator...4 A QuestionIterator osztály beillesztése a
RészletesebbenDinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése
FEJLETT PROGRAMOZÁSI NYELVEK, 2009 2. GYAKORLAT - Linux alatti C/C++ programozás Cél: Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése
RészletesebbenBevezetés a programozásba Előadás: Tagfüggvények, osztály, objektum
Bevezetés a programozásba 2 1. Előadás: Tagfüggvények, osztály, objektum Ismétlés int main() { string s; s; s= bla ; cout
RészletesebbenEseményvezérelt alkalmazások fejlesztése I 3. előadás. Dinamikus felületű alkalmazások. Giachetta Roberto
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 3. előadás Dinamikus felületű alkalmazások Giachetta Roberto http://people.inf.elte.hu/groberto A felhasználói
RészletesebbenBroadcast Service Widget
OE-NIK 2012. április 22. Sicz-Mesziár János sicz-mesziar.janos@ nik.uni-obuda.hu Broadcast Service Widget Broadcast Mi is ez? Aszinkron, üzenetszórásos értesítés Azok akik felregisztráltak rá értesülnek
RészletesebbenTáblázatkezelés 2. - Adatbevitel, szerkesztés, formázás ADATBEVITEL. a., Begépelés
Táblázatkezelés 2. - Adatbevitel, szerkesztés, formázás ADATBEVITEL a., Begépelés Az adatok bevitelének legegyszerűbb módja, ha a táblázat kijelölt cellájába beírjuk őket. - számok (numerikus adatok) -
RészletesebbenGrafikus felhasználói felület (GUI) létrehozása A GUI jelentése Egy egyszerű GUI mintaalkalmazás létrehozása
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 0. MATLAB alapismeretek IX. A GUI jelentése Egy egyszerű GUI mintaalkalmazás létrehozása Alkalmazott Informatikai Intézeti
RészletesebbenKivételek, kivételkezelés a C++ nyelvben
2009. Kivételek, kivételkezelés a C++ nyelvben Haladó C++ programozás Kurucz Attila ELTE - IK 2009.06.09. Tartalomjegyzék Tartalomjegyzék... 2 Mi a kivételkezelés?... 3 Alapfogalmak... 3 Kivétel... 3 Try
RészletesebbenOOP #14 (referencia-elv)
OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet
RészletesebbenC++ referencia. Izsó Tamás február 17. A C++ nyelvben nagyon sok félreértés van a referenciával kapcsolatban. A Legyakoribb hibák:
C++ referencia Izsó Tamás 2017. február 17. 1. Bevezetés A C++ nyelvben nagyon sok félreértés van a referenciával kapcsolatban. A Legyakoribb hibák: Sokan összetévesztik a pointerrel. Keveset alkalmazzák
RészletesebbenProgramozási technológia
Programozási technológia Grafikus felhasználói felület Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Grafikus felhasználói felület Két csomag elemeiből lehet a felületet elkészíteni awt,,heavy weight"
RészletesebbenC programozási nyelv
C programozási nyelv Előfeldolgozó utasítások Dr Schuster György 2011 május 3 Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 1 / 15 A fordítás menete Dr Schuster György
Részletesebben18. Szövegszerkesztők
18. Szövegszerkesztők A szövegszerkesztés olyan számítógépes művelet, amelynek során később nyomtatásban megjelenő szövegegységeket, dokumentumokat hozunk létre, majd azokat papírra kinyomtatjuk. A különböző
RészletesebbenC++ programozási nyelv
C++ programozási nyelv Gyakorlat - 8. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. november A C++ programozási nyelv Soós Sándor 1/12 Tartalomjegyzék Miért
RészletesebbenProgramozá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észletesebbenTájékoztató. Használható segédeszköz: -
A 35/2016. (VIII. 31.) NFM rendelet szakmai és vizsgakövetelménye alapján. Szakképesítés, azonosítószáma és megnevezése 54 213 05 Szoftverfejlesztő Tájékoztató A vizsgázó az első lapra írja fel a nevét!
RészletesebbenJárműfedélzeti rendszerek II. 3. előadás Dr. Bécsi Tamás
Járműfedélzeti rendszerek II. 3. előadás Dr. Bécsi Tamás 5.3. Mutatók,tömbök A mutató vagy pointer olyan változó, amely egy másik változó címét tartalmazza. A C nyelvű programokban gyakran használják a
RészletesebbenHardver modellezés SystemC-vel és SDL grafikus könyvtárral Visual Stúdió alatt
BME Hardver modellezés SystemC-vel és SDL grafikus könyvtárral Visual Stúdió alatt Visual Studio, SystemC, SDL Tóth Gergely Endre 2013.03.18. 1 Bevezetés Ebben a dokumentumban leírom, hogy hogyan lehet
RészletesebbenBevezetés a programozásba Előadás: A const
Bevezetés a programozásba 2 6. Előadás: A const ISMÉTLÉS Interface - Implementation struct Particle { int x,y; unsigned char r,g,b; void rajzol(); }; }; void Particle::rajzol() { gout
RészletesebbenBevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok
Bevezetés a programozásba II 8. Előadás: Osztályok, objektumok, osztályszintű metódusok vektor.h #ifndef VEKTOR_H #define VEKTOR_H class Vektor { int meret, *mut; public: Vektor(int meret); int szamlal(int
RészletesebbenDr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás 2015-2016
Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS 2015-2016 Objektumorientált programozás OOP PHP-ben 2 A PHP az 5.0-as verziójától megvalósítja az OO eszközrendszerét OO eszközök:
RészletesebbenJava programozási nyelv 8. rész Grafikus felhasználói felület
Java programozási nyelv 8. rész Grafikus felhasználói felület Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/17
RészletesebbenElemi 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észletesebbenProgramozási alapismeretek 4.
Programozási alapismeretek 4. Obejktum-Orientált Programozás Kis Balázs Bevezetés I. Az OO programozási szemlélet, egy merőben más szemlélet, az összes előző szemlélettel (strukturális, moduláris, stb.)
RészletesebbenKépfájlok beolvasása és megjelenítése
Programozás 3 1 2016 Képfájlok beolvasása és megjelenítése Előzmények Eddig a Rajzolás, Grafika és az Interaktivitás lap programját készítettük el. Ennek a programnak néhány új funkcionalítással ellátott
RészletesebbenJava programozási nyelv 6. rész Java a gyakorlatban
Java programozási nyelv 6. rész Java a gyakorlatban Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. október A Java programozási nyelv Soós Sándor 1/16 Tartalomjegyzék
RészletesebbenVizuá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észletesebbenDinamikus felületű alkalmazások. Stílusok, időzítő, képek
Dinamikus felületű alkalmazások Stílusok, időzítő, képek Felhasználói felület fajtái Az alkalmazásaink grafikus felülete alapvetően kétféle lehet: statikus: az alkalmazás felületén lévő vezérlőket induláskor
Részletesebbenbool _freehand = false; QPoint _lastpoint; // ebben a pontban volt az utolsó rajzolásnál az egérmutató
canvas.h #pragma once #include #include #include #include #include #include #include // terület kiválasztáshoz struct RajzParameterek
RészletesebbenJava és web programozás
Budapesti Műszaki Egyetem 2015. 04. 08. 9. Előadás Kivétel kezelés a kivétel (exception) egy esemény, mely futás közben megbontja a program normális futási folyamatát például kivétel dobódik amikor 0-val
RészletesebbenTájékoztató. Használható segédeszköz: -
A 12/2013. (III. 29.) NFM rendelet szakmai és vizsgakövetelménye alapján. Szakképesítés, azonosítószáma és megnevezése 54 481 06 Informatikai rendszerüzemeltető Tájékoztató A vizsgázó az első lapra írja
RészletesebbenMobil 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észletesebbenPelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;
Java osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. ( Előfeltétel 12. Tétel ) Az osztály egy olyan típus leíró struktúra, amely
RészletesebbenAdabá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észletesebbenJava 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észletesebbenDKÜ 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észletesebbenSzövegek C++ -ban, a string osztály
Szövegek C++ -ban, a string osztály A string osztály a Szabványos C++ könyvtár (Standard Template Library) része és bár az objektum-orientált programozásról, az osztályokról, csak később esik szó, a string
RészletesebbenQGIS tanfolyam (ver.2.0)
QGIS tanfolyam (ver.2.0) I. Rétegkezelés, stílusbeállítás 2014. január-február Összeállította: Bércesné Mocskonyi Zsófia Duna-Ipoly Nemzeti Park Igazgatóság A QGIS a legnépszerűbb nyílt forráskódú asztali
RészletesebbenEseményvezérelt alkalmazások fejlesztése I 10. előadás. Adatbázis-kezelés modell/nézet architektúrában. Giachetta Roberto
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 10. előadás Adatbázis-kezelés modell/nézet architektúrában Giachetta Roberto http://people.inf.elte.hu/groberto
RészletesebbenBME MOGI Gépészeti informatika 6.
BME MOGI Gépészeti informatika 6. 1. feladat Készítsen Windows Forms alkalmazást véletlen adatokkal létrehozott körök kölcsönös helyzetének vizsgálatára! Hozza létre a következő struktúrákat, melynek elemei
RészletesebbenAutodesk Inventor Professional New Default Standard.ipt
Adaptív modellezési technika használata Feladat: Készítse el az alábbi ábrán látható munkahenger összeállítási modelljét adaptív technikával! 1. Indítson egy új feladatot! New Default Standard.ipt 2. A
RészletesebbenEseményvezérelt alkalmazások fejlesztése I 8. előadás. Adatbázis-kezelés modell/nézet architektúrában
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 8. előadás Adatbázis-kezelés modell/nézet architektúrában 2013.04.17. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
RészletesebbenAlkalmazá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