Eseményvezérelt alkalmazások fejlesztése I. Tantárgyfelelős: Gregorics Tibor

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

Download "Eseményvezérelt alkalmazások fejlesztése I. Tantárgyfelelős: Gregorics Tibor"

Átírás

1 Eseményvezérelt alkalmazások fejlesztése I. Tantárgyfelelős: Gregorics Tibor

2 Tantárgyról Cél: Objektum orientált módon felépített grafikus felületű, egy-, illetve többablakos, több rétegű, eseményvezérelt alkalmazások készítése Előadás (heti 1 óra) Konzultációs gyakorlat (heti 1 óra) Eszköz: Qt, C++, Linux, UML Előfeltétel: Objektum elvű alkalmazások fejlesztése Előismeretek: Objektumelvű programozás, tervezés (UML) C++, nyelvi könyvtárak (STL) 2

3 Eszközök Qt keretrendszer: o Qt 5.x keretrendszer, Qt Creator fejlesztőkörnyezet ( apt-get install qt-sdk o Qt MySQL driver apt-get install libqt5sql5-mysql o MySql Server apt-get install mysql-server o MySql Workbench apt-get install mysql-workbench A számonkérés Linux környezetben zajlik. 3

4 Összevont számonkérés Kötelező házi feladatok egyenként 5 pontért: o 3 darab beadandó elkészítése: helyes (tesztelt) program + dokumentáció o Határidő: legfeljebb 3 hét késés, hetenként egy jegy pont levonás, legkésőbb a géptermi zárthelyi előtt o személyesen kell bemutatni Géptermi zárthelyi 5 pontért: o félév végi évfolyam zh (egyszer ismételhető) o Használható az előadás honlapja, bármely írott/nyomtatott anyag, és a félév során leadott beadandók Gyakorlati jegy: o a beadandók, és a duplán számított zárthelyi eredményének átlaga 4

5 Háttér anyagok Előadások diái Házi feladatok (követelmények leírása, feladatsor, minta) Egyéb segédanyagok Qt : Jasmin Blanchette, Mark Summerfield: C++ GUI programming with Qt 4, Prentice Hall, Giachetta Roberto anyagai: 5

6 Qt keretrendszer Néhány szó a grafikus felületről, a Qt programok fordításáról, és bevezetés az eseménykezelésbe

7 Qt keretrendszer A Qt egy platformfüggetlen alkalmazás-fejlesztési keretrendszer, amellyel nemcsak asztali, de akár mobil vagy beágyazott alkalmazások is fejleszthetők. Támogatást ad a grafikus felület, az adatbáziskezelés, a multimédia, a 3D grafika, a hálózati és webes kommunikáció készítéséhez. Rendelkezik nyílt forráskódú (LGPL) és kereskedelmi verzióval is. Fejlesztő nyelve elsősorban a C++, de más nyelvekre is elérhető, valamint rendelkezik saját leíró nyelvvel (Qt Quick). Elérhető a qt.io oldalról. 7

8 Hello Qt alkalmazás #include <QApplication> #include <QLabel> int main(int argc, char *argv[]) { QApplication app(argc, argv); // alkalmazás példányosítása QLabel mylabel("hello Qt!"); // címke a felirattal mylabel.show(); // címke megjelenítése } return app.exec(); // alkalmazás futtatása 8

9 Grafikus felületű alkalmazás Grafikus felületű alkalmazásnak nevezzük azt a programot, amely 2D-s interaktív felhasználói felületen (GUI, Graphical User Interface) keresztül kommunikál a felhasználóval A konzol felületnél lényegesen változatosabb interakciós lehetőséget biztosít a programfutásba történő beavatkozáshoz. A felület grafikus megjelenítéssel is ellátott vezérlőkből (control/widget) áll (mint például nyomógombok, listák, menük, stb.). Megjelenhetnek önállóan ablakként (form/window), vagy egy másik vezérlő részeként. Mindig van egy aktív ablak, és egy aktív vezérlő (ezen van a fókusz). A működését a felhasználói interakcióra történő várakozás jellemzi. 9

10 Példák GUI alkalmazásokra 10

11 Grafikus felület felépítése A grafikus felület objektumorientáltan épül fel. Egy vezérlő egy osztálynak a példánya, amely (adattagokkal) adja meg a tulajdonságait (pl. pozíció, méret, betűtípus), és (metódusokkal) a viselkedését ( pl. kattintás esetén mi történjen). Mivel a különféle vezérlők sok hasonló tulajdonsággal bírnak, így osztályaik öröklődési hierarchiába szervezhetők. Az öröklődési lánc legtetején áll az általános vezérlő osztálya, amelyből a többi vezérlő osztálya származik. A Qt keretrendszer az általános vezérlőt és az abból származtatott nevezetes vezérlőket tartalmazza, csak a saját, egyedi vezérlőink osztályait kell nekünk származtatással definiálni. A vezérlők elhelyezkedési hierarchiába rendeződnek aszerint, hogy egy vezérlő önállóan, azaz ablakként, vagy egy másik vezérlő részeként jelenik meg. 11

12 Grafikus felület osztályhierarchiája QObject QApplication QWidget QLayout QFrame QComboBox QButton QBoxLayout QLabel QLineEdit QPushButton QCheckBox QHBoxLayout 12

13 Grafikus felület osztályai QObject + staticmetaobject :QMetaObject {readonly} # d_ptr :QScopedPointer<QObjectData> # staticqtmetaobject :QMetaObject {readonly} + QObject(QObject*) + ~QObject() + event(qevent*) :bool + eventfilter(qobject*, QEvent*) :bool + tr(char*, char*, int) :QString + trutf8(char*, char*, int) :QString + metaobject() :QMetaObject * {query} + tr(char*, char*, int) :QString + tr(char*, char*) :QString + trutf8(char*, char*, int) :QString + trutf8(char*, char*) :QString + objectname() :QString {query} + setobjectname(qstring&) :void + iswidgettype() :bool {query} + signalsblocked() :bool {query} + blocksignals(bool) :bool + thread() :QThread * {query} + movetothread(qthread*) :void + starttimer(int) :int + killtimer(int) :void + findchild(qstring&) :T {query} + findchildren(qstring&) :QList<T> {query} + findchildren(qregexp&) :QList<T> {query} + children() :QObjectList & {query} + setparent(qobject*) :void + installeventfilter(qobject*) :void + removeeventfilter(qobject*) :void + connect(qobject*, char*, QObject*, char*, Qt::ConnectionType) :bool + connect(qobject*, QMetaMethod&, QObject*, QMetaMethod&, Qt::ConnectionType) :bool + connect(qobject*, char*, char*, Qt::ConnectionType) :bool {query} + disconnect(qobject*, char*, QObject*, char*) :bool + disconnect(qobject*, QMetaMethod&, QObject*, QMetaMethod&) :bool + disconnect(char*, QObject*, char*) :bool + disconnect(qobject*, char*) :bool + dumpobjecttree() :void + dumpobjectinfo() :void + setproperty(char*, QVariant&) :bool + property(char*) :QVariant {query} + dynamicpropertynames() :QList<QByteArray> {query} + registeruserdata() :uint + setuserdata(uint, QObjectUserData*) :void + userdata(uint) :QObjectUserData* {query} + destroyed(qobject*) :void + parent() :QObject * {query} + inherits(char*) :bool {query} + deletelater() :void # sender() :QObject * {query} # sendersignalindex() :int {query} # receivers(char*) :int {query} # timerevent(qtimerevent*) :void # childevent(qchildevent*) :void # customevent(qevent*) :void # connectnotify(char*) :void # disconnectnotify(char*) :void # QObject(QObjectPrivate&, QObject*) QWidget + setenabled(bool) :void + setdisabled(bool) :void + setwindowmodified(bool) :void + framegeometry() :QRect {query} + geometry() :QRect & {query} + normalgeometry() :QRect {query} + x() :int {query} + y() :int {query} + pos() :QPoint {query} + framesize() :QSize {query} + size() :QSize {query} + width() :int {query} + height() :int {query} + rect() :QRect {query} + childrenrect() :QRect {query} + childrenregion() :QRegion {query} + minimumsize() :QSize {query} + maximumsize() :QSize {query} + minimumwidth() :int {query} + minimumheight() :int {query} + maximumwidth() :int {query} + maximumheight() :int {query} + setminimumsize(qsize&) :void + setminimumsize(int, int) :void + setmaximumsize(qsize&) :void + setmaximumsize(int, int) :void + setminimumwidth(int) :void + setminimumheight(int) :void + setmaximumwidth(int) :void + setmaximumheight(int) :void + setupui(qwidget*) :void + sizeincrement() :QSize {query} + setsizeincrement(qsize&) :void + setsizeincrement(int, int) :void + basesize() :QSize {query} + setbasesize(qsize&) :void + setbasesize(int, int) :void + setfixedsize(qsize&) :void + setfixedsize(int, int) :void + setfixedwidth(int) :void +...() QPaintDevice «enumeration» RenderFlag DrawWindowBackground = 0x1 DrawChildren = 0x2 IgnoreMask = 0x4 «enumeration» InsertPolicy NoInsert InsertAtTop InsertAtCurrent InsertAtBottom InsertAfterCurrent InsertBeforeCurrent InsertAlphabetically «enumeration» SizeAdjustPolicy AdjustToContents AdjustToContentsOnFirstShow AdjustToMinimumContentsLength AdjustToMinimumContentsLengthWithIcon QComboBox + QComboBox(QWidget*) + ~QComboBox() + maxvisibleitems() :int {query} + setmaxvisibleitems(int) :void + count() :int {query} + setmaxcount(int) :void + maxcount() :int {query} + autocompletion() :bool {query} + setautocompletion(bool) :void + autocompletioncasesensitivity() :Qt::CaseSensitivity {query} + setautocompletioncasesensitivity(qt::casesensitivity) :void + duplicatesenabled() :bool {query} + setduplicatesenabled(bool) :void + setframe(bool) :void + hasframe() :bool {query} + findtext(qstring&, Qt::MatchFlags) :int {query} + finddata(qvariant&, int, Qt::MatchFlags) :int {query} + insertpolicy() :InsertPolicy {query} + setinsertpolicy(insertpolicy) :void + sizeadjustpolicy() :SizeAdjustPolicy {query} + setsizeadjustpolicy(sizeadjustpolicy) :void + minimumcontentslength() :int {query} + setminimumcontentslength(int) :void + iconsize() :QSize {query} + seticonsize(qsize&) :void + iseditable() :bool {query} + seteditable(bool) :void + setlineedit(qlineedit*) :void + lineedit() :QLineEdit * {query} + setvalidator(qvalidator*) :void + validator() :QValidator * {query} + setcompleter(qcompleter*) :void + completer() :QCompleter * {query} + itemdelegate() :QAbstractItemDelegate * {query} + setitemdelegate(qabstractitemdelegate*) :void + model() :QAbstractItemModel * {query} + setmodel(qabstractitemmodel*) :void + rootmodelindex() :QModelIndex {query} + setrootmodelindex(qmodelindex&) :void + modelcolumn() :int {query} + setmodelcolumn(int) :void + currentindex() :int {query} + currenttext() :QString {query} + itemtext(int) :QString {query} + itemicon(int) :QIcon {query} + itemdata(int, int) :QVariant {query} + additem(qstring&, QVariant&) :void + additem(qicon&, QString&, QVariant&) :void + additems(qstringlist&) :void + insertitem(int, QString&, QVariant&) :void + insertitem(int, QIcon&, QString&, QVariant&) :void + insertitems(int, QStringList&) :void +...() 13

14 Qt osztálykönyvtár A Qt nyelvi könyvtár osztályai egy ősosztály (QObject) leszármazottjai Jelentős részét teszik ki a vezérlők osztályai. Számos segédosztállyal rendelkezik, pl.: adatszerkezetek (QVector, QStack, QLinkedList, ) fájl és fájlrendszer kezelés (QFile, QTextStream, QDir, ) párhuzamosság és aszinkron végrehajtás (QThread, QSemaphore, QFuture, ) 14

15 Fejlesztés nyelve és eszközei A fejlesztés C++/Qt nyelven történik. Elérhető a teljes C++ utasításkészlet, nyelvi könyvtár. Számos C++ nyelven megszokott osztálynak létezik Qt-s megfelelője (QString, QQueue, stb.) A C++ nyelven felül további makrókat, kiegészítéseket tartalmaz, amelyeket a Meta Object Compiler (MOC) fordít le ISO C++ kódra. Az alapértelmezett fejlesztőeszköz a Qt Creator, de más környezetekben is lehetőség van a Qt fejlesztésre (pl. Code::Blocks, Visual Studio). Külön tervezőprogram (Qt Designer) áll rendelkezésre a grafikus felület létrehozásához, amely XML nyelven írja la felület felépítését, amely aztán automatikusan C++/Qt kódra fordul. 15

16 Fordítás A fordítás projektszinten történik, az ehhez szükséges információk a projektfájlban (.pro) tárolódnak, amely tartalmazza a felhasznált modulokat, kapcsolókat, a forrásfájlok, erőforrások (pl. kép, szöveg,) listáját az eredmény paramétereket. A fordítás akár közvetlenül is elvégezhető a fordítóval: qmake project # könyvtár nevével azonos projektfájl létrehozása qmake # fordítófájl (makefile) előállítása a projektfájlból make # projekt fájlnak megfelelő fordítás és # szerkesztés végrehajtása 16

17 Fordítás lépései Qt fordító Qt felület leírás (XML) Qt XML fordító Qt kód (C++) Qt MOC fordító C++ kód C++ fordító gépi kód 17

18 Modulok A keretrendszer felépítése modularizált. A legfontosabb modulok: központi modul (QtCore) grafikus felület (QtGui), grafikus vezérlők (QtWidgets) adatbázis-kezelés (QtSQL) hálózat-kezelés (QtNetwork) A projektben használandó modulokat a projektfájlban kell megadnunk, pl.: QT += core gui widgets sql network Egy modul tartalmát egyszerre (pl. #include <QtGui>), vagy akár osztályonként is (pl. #include <QLabel>) betölthetjük az aktuális fájlba 18

19 Vezérlés Egy grafikus felületű alkalmazás vezérlését egy alkalmazás objektum (a Qt-ben a QApplication osztály példánya) látja el. Beállítja az alkalmazás szintű tulajdonságokat (megjelenés, elérési útvonal). Kezeli az alkalmazás vezérlő objektumait, azokon belül a grafikus felület elemeit. A programfutás során bekövetkező különféle történéseket, akciókat (pl. billentyűzet-, vagy egérhasználat, egy objektum üzenete, stb.) eseményként értelmezi. Gondoskodik arról, hogy az események eljussanak azokhoz a vezérlőkhöz, amelyek megfelelően reagálhatnak az eseményre. 19

20 Akció és Esemény Az eseményeket (event) a futó alkalmazás generálja az alkalmazás működésétől függetlenül bekövetkező akciók hatására. Pl. egy kattintás az egér jobbfülével egy nyomógomb felett egérgomb-lenyomás eseményként jelentkezik a nyomógombnál. Egy akció származhat a felhasználótól (érintőképernyő, billentyűzet, egér, stb.), vagy az alkalmazás egyik objektumától (pl. időzítő), vagy akár egy másik alkalmazástól is. Az események a QEvent osztályból származtatott objektumok. (pl: QMouseEvent) o A több, mint száz különféle esemény típust enum értékek azonosítják, amelyeket a QEvent::type() add meg. Pl: QEvent::KeyPress, QEvent::MouseButtonPress o Egy eseménynek lehetnek paraméterei (arguments). Pl. egérfül lenyomásakor: melyik fület nyomták le, mi az egérmutató pozíciója. 20

21 Eseménykezelés Egy esemény feldolgozását több eseménykezelő metódus végzi elosztott módon, amelyek megfelelő sorrendben való hívását az alkalmazás objektum kezdeményezi. Az alkalmazás objektum először a notify() metódusát futtatja. Ez gondoskodik arról, hogy az esemény a megfelelő (fókuszban levő vagy egér mutató alatti) vezérlőhöz eljusson. A vezérlők eseménykezeléséhez rendelhetünk az installeventfilter()metódussal megfigyelő (monitoring) objektumokat is (lehet több vezérlőnek egy közös megfigyelő objektuma, sőt maga az alkalmazás objektum is ilyen), és ezek eventfilter() metódusa végezhet előzetes eseményfeldolgozást. Egy vezérlő a hozzá eljutó eseményt először az event() metódusával dolgozza, majd az esemény fajtájától függően lefut a mousepressevent(), vagy keypressevent(), vagy paintevent() kezelő is. Ha ezek valamelyike szignált is kivált, akkor a szignálhoz rendelt tevékenység (slot) végrehajtására kerülhet sor. notify() eventfilter() event() mouseevent(), keyevent(), 21

22 Egyedi eseménykezelés Az eseményekre történő reagálás egyedivé alakítása történhet o származtatással: valamelyik létező QWidget leszármazottból származtatunk egy új osztályt, és abban felüldefiniáljuk az eseménykezelő metódusokat. A vezérlő osztályába fordítási időben égetjük be az eseménykezelés. o objektum befecskendezéssel: megadjuk a vezérlőnek azt a megfigyelő objektumot, amelyik eventfilter() metódusa végzi az esemény előzetes kezelését. Futási időben létrehozott kapcsolat. o szignálokkal: az eseményvizsgáló metódusok az esemény hatására egy szignált (signal) váltanak ki, amelyre futási időben feliratkozthatnak olyan metódusok (ezek akár más objektumok metódusai is lehetnek), amelyek a szignált kiváltó eseményt lekezelik. Futási időben létrehozott kapcsolat (nem objektum-orientált technológia). 22

23 Esemény és Szignál esemény: farokhúzás eseménykezelés: ebédidőt vagy munka végét jelent szignál: csak vijjog A szignál kiváltása rugalmasabbá teszi a vezérlő felhasználását, hiszen a vezérlő kódjának módosítása nélkül tudjuk megváltoztatni egy esemény kezelését. Ne keverjük össze az esemény és a szignál fogalmait. akció: zsinór rángatás Egy fókuszban levő nyomógomb esetén esemény az enter billentyű lenyomása vagy a gomb felületén történt egérkattintás, de mindkettő a clicked() szignált váltja ki. o Amikor alkalmazunk egy vezérlőt, akkor a szignáljaival foglalkozunk, és megmondjuk, hogy melyik szignálhoz milyen eseménykezelőt akarunk társítani. o Amikor tervezünk és implementálunk egy vezérlők, akkor annak szóba jöhető eseményeire koncentrálunk, és döntünk arról, hogy azokat milyen módon kezeljünk le (közvetlenül vagy szignállal). 23

24 Szignál kiváltása Egy szignál kiváltása (emit) hasonlít egy eljáráshíváshoz, amely azonban nem okoz hibát akkor sem, ha az eljárás hiányzik: ilyenkor a hívás üres programként viselkedik, a szignált kiváltó esemény kezeletlen marad. Egy szignál kiváltásakor megadhatunk aktuális paramétereket, amelyet a szignálhoz rendelt eseménykezelő eljárás formális paraméterváltozóival vesz át. A formális paraméterlistának illeszkedni-e kell az aktuális paraméterekhez (sorrendben, típusban, de darabszámban nem). Egy szignálhoz rendelt eseménykezelő eljárásban mindig lekérdezhető a szignált kiváltó vezérlő objektum: a szignál küldője (sender). 24

25 Eseménykezelő társítása Társításnak nevezzük azt, amikor egy vezérlő szignálját összekötjük egy eseménykezelővel, amely egy tetszőleges objektum speciális (slot) metódusa kell legyen. A társítás elvégezhető bármelyik QObject leszármazott típusban, vagy statikus metódus hivatkozással. Qt-ban ehhez a connect metódust használjuk, pl.: connect(&button, SIGNAL(clicked()), &app, SLOT(quit())); Ennek paraméterei: a szignált kiváltó küldő objektum (sender) a szignált (SIGNAL) a fogadó objektum (receiver) A fogadó metódusaként definiált eseménykezelő (SLOT). 25

26 Quit alkalmazás #include <QApplication> #include <QPushButton> int main(int argc, char *argv[]) { QApplication app(argc, argv); // alkalmazás QPushButton quit("quit"); // gomb quit.resize(75, 30); // méret quit.setfont(qfont("times", 18, QFont::Bold)); // betűtípus QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit())); quit.show(); // gomb megjelenítése } return app.exec(); 26

Eseményvezérelt alkalmazások fejlesztése I 1. előadás. Grafikus felület és eseményvezérlés, a Qt keretrendszer

Eseményvezérelt alkalmazások fejlesztése I 1. előadás. Grafikus felület és eseményvezérlés, a Qt keretrendszer Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 1. előadás Grafikus felület és eseményvezérlés, a Qt keretrendszer 2016 Giachetta Roberto groberto@inf.elte.hu

Részletesebben

Eseményvezérelt alkalmazások fejlesztése I. Tantárgyfelelős: Gregorics Tibor

Eseményvezérelt alkalmazások fejlesztése I. Tantárgyfelelős: Gregorics Tibor Eseményvezérelt alkalmazások fejlesztése I. Tantárgyfelelős: Gregorics Tibor Tantárgyról Cél: Objektum orientált módon felépített grafikus felületű, egy-, illetve többablakos, több rétegű, eseményvezérelt

Részletesebben

Eseményvezérelt alkalmazások fejlesztése I 1. előadás. Grafikus felület és eseményvezérlés, a Qt keretrendszer. Giachetta Roberto

Eseményvezérelt alkalmazások fejlesztése I 1. előadás. Grafikus felület és eseményvezérlés, a Qt keretrendszer. Giachetta Roberto Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 1. előadás Grafikus felület és eseményvezérlés, a Qt keretrendszer Giachetta Roberto A jegyzet az ELTE Informatikai

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

Alkalmazott modul: Programozás 12. előadás. Grafikus felületű alkalmazások fejlesztése

Alkalmazott modul: Programozás 12. előadás. Grafikus felületű alkalmazások fejlesztése Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 12. előadás Grafikus felületű alkalmazások fejlesztése Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

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

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

2. Beadandó feladat dokumentáció

2. 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észletesebben

ESEMÉ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 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é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

2. Beadandó feladat dokumentáció

2. 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é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

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

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

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

Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás

Programozá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é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

Eseménykezelés. Aszinkron kommunikáció

Esemé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é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

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

Hálózati alkalmazások

Hálózati alkalmazások Hálózati alkalmazások Hálózati alkalmazások QT osztályai A Qt támogatja az FTP és HTTP alapú hálózati alkalmazások készítését. A QFtp osztály segítségével lehet fájlokat megadott hálózati helyekre fel-

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

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

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése Bevezetés Célkitűzés, tematika, követelmények A.NET Core keretrendszer Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu

Részletesebben

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése Célkitűzés, tematika, követelmények A.NET Core keretrendszer Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu Célkitűzés

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

é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

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

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

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

Eseményvezérelt alkalmazások fejlesztése I 11. előadás. Szoftverek tesztelése

Eseményvezérelt alkalmazások fejlesztése I 11. előadás. Szoftverek tesztelése Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 11. előadás Szoftverek tesztelése 2014 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

Már megismert fogalmak áttekintése

Már megismert fogalmak áttekintése Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése Eseménykezelési módszerek 2 Már megismert fogalmak

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

Adatok speciális megjelenítése

Adatok speciális megjelenítése Adatok speciális megjelenítése Speciális adatmegjelenítés Az adatok csoportos megjelenítéshez a nézet számos osztályt (QListView, QTableView, QTreeView) biztosít, amelyekből származtatással továbbiakat

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 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észletesebben

Eseményvezérelt alkalmazások fejlesztése I 11. előadás. Adatkezelés speciális eszközökkel. Giachetta Roberto

Eseményvezérelt alkalmazások fejlesztése I 11. előadás. Adatkezelés speciális eszközökkel. Giachetta Roberto Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 11. előadás Adatkezelés speciális eszközökkel Giachetta Roberto http://people.inf.elte.hu/groberto Az adatkezelés

Részletesebben

Bánsághi Anna anna.bansaghi@mamikon.net. 2014 Bánsághi Anna 1 of 31

Bánsághi Anna anna.bansaghi@mamikon.net. 2014 Bánsághi Anna 1 of 31 IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 9. ELŐADÁS - OOP TERVEZÉS 2014 Bánsághi Anna 1 of 31 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív paradigma

Részletesebben

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás.   Szénási Sándor. Eseménykezelés előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Függvénymutatókkal Származtatással Interfészekkel Egyéb

Részletesebben

Eseményvezérelt alkalmazások fejlesztése I 3. előadás. Dinamikus felületű alkalmazások. Giachetta Roberto

Esemé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é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

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

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

Programozás I. gyakorlat

Programozás I. gyakorlat Programozás I. gyakorlat 1. gyakorlat Alapok Eszközök Szövegszerkesztő: Szintaktikai kiemelés Egyszerre több fájl szerkesztése pl.: gedit, mcedit, joe, vi, Notepad++ stb. Fordító: Szöveges file-ban tárolt

Részletesebben

Eseménykezelés. Aszinkron kommunikáció

Esemé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észletesebben

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1 Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum

Részletesebben

A szerzõrõl... xi Bevezetés... xiii

A szerzõrõl... xi Bevezetés... xiii TARTALOMJEGYZÉK A szerzõrõl...................................................... xi Bevezetés...................................................... xiii I. rész A Visual Basic 2005 környezet 1. óra Irány

Részletesebben

Programozási alapismeretek 4.

Programozá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észletesebben

Eseményvezérelt alkalmazások fejlesztése I 8. előadás. Adatbázis-kezelés modell/nézet architektúrában

Esemé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észletesebben

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás Objektum orientáltság alapjai Objektum: A való világ egy elemének ábrázolása, amely minden esetben rendelkezik: Állapottal,Viselkedéssel,Identitással

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

Concurrency in Swing

Concurrency in Swing Concurrency in Swing A szálkezelés a swing alkalmazásokban is fontos. Cél egy olyan felhasználói felület készítése, amely soha nem fagy, mindig válaszol a felhasználói interakciókra, bármit is csináljon

Részletesebben

Java I. A Java programozási nyelv

Java I. A Java programozási nyelv Java I. A Java programozási nyelv története,, alapvető jellemzői Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2007. 02. 12. Java I.: Történet, jellemzők, JDK JAVA1 / 1 Egy kis történelem

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

Iman 3.0 szoftverdokumentáció

Iman 3.0 szoftverdokumentáció Melléklet: Az iman3 program előzetes leírása. Iman 3.0 szoftverdokumentáció Tartalomjegyzék 1. Az Iman rendszer...2 1.1. Modulok...2 1.2. Modulok részletes leírása...2 1.2.1. Iman.exe...2 1.2.2. Interpreter.dll...3

Részletesebben

OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS. Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem

OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS. Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem OpenCV Nyílt forráskódú szoftver (BSD licensz) Számítógépes látás,

Részletesebben

Bevezeté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 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észletesebben

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN Objektum Orientált Programozás 11. Kivételkezelés 44/1B IT MAN B IT v: 2016.05.03 MAN Pici elmélet A Java kivételkezelésének célja a programfutás során keletkezett hibák kiszűrése és megfelelő kezelése.

Részletesebben

Könyvtári nyilvántartás

Könyvtári nyilvántartás Könyvtári nyilvántartás Feladat: Készítette: Az alkalmazás lehetővé teszi egy könyvtári könyv kikölcsönzésének és visszahozásának, az könyvtártagok tagdíj-befizetéseinek és az olvasó terembe történő be-

Részletesebben

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv

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 Eseménykezelés A képviselő( delegate ) Képviselők C# nyelvi megvalósítása Metódushívás képviselőn keresztül Az esemény ( event ) Esemény

Részletesebben

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Tartalom Új kommentelési lehetőség Változók deklarációjának helye Alapértelmezett függvényparaméterek Névterek I/O műveletek egyszerűsödése Logikai adattípus,

Részletesebben

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv

Részletesebben

Eseményvezérelt alkalmazások fejlesztése I 10. előadás. Adatbázis-kezelés modell/nézet architektúrában. Giachetta Roberto

Esemé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észletesebben

Gyakorlati vizsgatevékenység B

Gyakorlati vizsgatevékenység B Gyakorlati vizsgatevékenység B Szakképesítés azonosító száma, megnevezése: 481 04 0000 00 00 Web-programozó Vizsgarészhez rendelt követelménymodul azonosítója, megnevezése: 1189-06 Web-alkalmazás fejlesztés

Részletesebben

OOP #14 (referencia-elv)

OOP #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észletesebben

Eseményvezérelt alkalmazások fejlesztése I 8. előadás. Adatbázis-kezelés elemi eszközökkel. A MySQL adatbázis-kezelő

Eseményvezérelt alkalmazások fejlesztése I 8. előadás. Adatbázis-kezelés elemi eszközökkel. A MySQL adatbázis-kezelő 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 elemi eszközökkel 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

Programozási Technológia 1. 1. előadás bevezetés. Előadó: Lengyel Zsolt

Programozási Technológia 1. 1. előadás bevezetés. Előadó: Lengyel Zsolt Programozási Technológia 1. 1. előadás bevezetés Előadó: Lengyel Zsolt Tartalom Információk a tantárggyal kapcsolatban Programozási technológiai eszközök áttekintése UML tervezőeszközök JAVA fejlesztőeszközök,

Részletesebben

Grafikus 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 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észletesebben

Modell megvalósítása. Gregorics Tibor: Eseményvezérelt alkalmazások fejlesztése I.

Modell megvalósítása. Gregorics Tibor: Eseményvezérelt alkalmazások fejlesztése I. Modell megvalósítása Mivel modell független a nézettől, és újrahasznosítható, nem tudható előre, milyen módon, milyen körülmények között hívják meg műveleteit. A hívás paramétereit, a modell állapotát

Részletesebben

Webes alkalmazások fejlesztése. Bevezetés az ASP.NET MVC 5 keretrendszerbe

Webes alkalmazások fejlesztése. Bevezetés az ASP.NET MVC 5 keretrendszerbe Webes alkalmazások fejlesztése Bevezetés az ASP.NET MVC 5 keretrendszerbe ASP.NET MVC Framework 2009-ben jelent meg az első verziója, azóta folyamatosan fejlesztik Nyílt forráskódú Microsoft technológia

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

Qt rajzolás munkafüzet. Elemi Alkalmazások fejlesztése 3.

Qt 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észletesebben

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft Flash és PHP kommunikáció Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft A lehetőségek FlashVars External Interface Loadvars XML SOAP Socket AMF AMFphp PHPObject Flash Vars Flash verziótól függetlenül

Részletesebben

Kommunikációs rendszerek teljesítőképesség-vizsgálata

Kommunikációs rendszerek teljesítőképesség-vizsgálata Kommunikációs rendszerek teljesítőképesség-vizsgálata (3. előadás) Dr. Lencse Gábor lencse@sze.hu https://www.tilb.sze.hu/cgi-bin/tilb.cgi?0=m&1=targyak&2=krtv 1 Miről lesz szó? Az OMNeT++ diszkrét idejű

Részletesebben

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Programozási nyelvek II. JAVA EA+GY 1. gyakolat Programozási nyelvek II. JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2017/2018. őszi félév Tartalom 1 Amit tudni kell a félévről

Részletesebben

Java felhasználói felület

Java felhasználói felület Java felhasználói felület Eseménykezelés Elek Tibor Eseményosztályok Az események előfordulásakor keletkezik egy megfelelő eseményobjektum. Pl. KeyPressed vagy KeyReleased (billentyű lenyomása vagy felengedése)

Részletesebben

Tartalomjegyzék. Előszó... 10

Tartalomjegyzék. Előszó... 10 Előszó... 10 1. Bevezetés a Symbian operációs rendszerbe... 11 1.1. Az operációs rendszer múltja...11 1.2. Az okos telefonok képességei...12 1.3. A Symbian felépítése...15 1.4. A könyv tartalma...17 2.

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

Mobil Informatikai Rendszerek

Mobil Informatikai Rendszerek Mobil Informatikai Rendszerek Android NDK Native Development Kit 2016. november 27. Sicz-Mesziár János sicz- m e s z i a r. j a n o s @ nik.uni - obuda.hu NDK Native Development Kit Egy set of tools, amely

Részletesebben

Webes alkalmazások fejlesztése

Webes alkalmazások fejlesztése Webes alkalmazások fejlesztése 3. gyakorlat Authentikáció, adatok feltöltése Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu Authentikáció Manapság már elvárás, hogy a felhasználó regisztrálni

Részletesebben

Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E

Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E Követelmény A beadandó dokumentációját a Keszthelyi Zsolt honlapján található pdf alapján kell elkészíteni http://people.inf.elte.hu/keszthelyi/alkalmazasok_fejlesztese

Részletesebben

Java programozási nyelv 5. rész Osztályok III.

Java programozási nyelv 5. rész Osztályok III. Java programozási nyelv 5. rész Osztályok III. 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/20 Tartalomjegyzék

Részletesebben

Bevezetés a Programozásba II 5. előadás. Objektumorientált programozás és tervezés

Bevezetés a Programozásba II 5. előadás. Objektumorientált programozás és tervezés Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 5. előadás Objektumorientált programozás és tervezés 2014.03.10. Giachetta Roberto groberto@inf.elte.hu

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

Akciók, diavetítés. 1. ábra Akciógombok. A lap két regiszterfülből áll, ezek a Kattintásra és az Áthaladáskor. Nézzük meg először az elsőt!

Akciók, diavetítés. 1. ábra Akciógombok. A lap két regiszterfülből áll, ezek a Kattintásra és az Áthaladáskor. Nézzük meg először az elsőt! Akciók Az akciógombok alkalmazásával beállíthatjuk, hogy az objektumra kattintva végrehajtsa a hozzárendelt hiperhivatkozást. Jól láttuk, hogy az objektumokhoz, diákhoz rendelhettünk akciókat, de az akciógombokkal

Részletesebben

Eseményvezérelt alkalmazások fejlesztése I 2. előadás. Egyszerű, egyablakos alkalmazások

Eseményvezérelt alkalmazások fejlesztése I 2. előadás. Egyszerű, egyablakos alkalmazások Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 2. előadás Egyszerű, egyablakos alkalmazások 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

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

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs Szoftver labor III. Dr. Csébfalvi Balázs Irányítástechnika és Informatika Tanszék e-mail: cseb@iit.bme.hu http://www.iit.bme.hu/~cseb/ Tematika Bevezetés Java programozás alapjai Kivételkezelés Dinamikus

Részletesebben

Közösség, projektek, IDE

Közösség, projektek, IDE Eclipse Közösség, projektek, IDE Eclipse egy nyílt forráskódú (open source) projekteken dolgozó közösség, céljuk egy kiterjeszthető fejlesztői platform és keretrendszer fejlesztése, amely megoldásokkal

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

Interfészek. PPT 2007/2008 tavasz.

Interfészek. PPT 2007/2008 tavasz. Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése 2 Már megismert fogalmak áttekintése Objektumorientált

Részletesebben

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07.

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum

Részletesebben

Web-fejlesztés NGM_IN002_1

Web-fejlesztés NGM_IN002_1 Web-fejlesztés NGM_IN002_1 Rich Internet Applications RIA Vékony-kliens generált (statikus) HTML megjelenítése szerver oldali feldolgozással szinkron oldal megjelenítéssel RIA desktop alkalmazások funkcionalitása

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

Inczédy György Középiskola, Szakiskola és Kollégium Nyíregyháza, Árok u. 53. TANMENET. Informatika szakmacsoport

Inczédy György Középiskola, Szakiskola és Kollégium Nyíregyháza, Árok u. 53. TANMENET. Informatika szakmacsoport TANMENET Informatika szakmacsoport Programozási gyakorlatok III. tantárgy 12. évfolyam A osztály 2013/2014 tanév Heti óraszám: Éves óraszám: 3 óra 96 óra Készítette: Szikszai Gusztáv tanár Ellenőrizte:.

Részletesebben

Alkalmazások fejlesztése III. Qt 4 /C++ alapú grafikus alkalmazás - Memóriajáték 1/2

Alkalmazások fejlesztése III. Qt 4 /C++ alapú grafikus alkalmazás - Memóriajáték 1/2 Tartalomjegyzék Memóriajáték...2 A memóriajáték osztálydiagramja...2 A projektben használt segéd függvények (Utils)...3 utils.h...3 utils.cpp...3 CardButton osztály...4 cardbutton.h...4 cardbutton.cpp...5

Részletesebben

Eseménykezelés - Lottó játék

Eseménykezelés - Lottó játék Eseménykezelés - Lottó játék Célok: Események, eseménykezelés hátterének, fogalmainak rövid áttekintése. Eseménykezelést megvalósító nem grafikus felületű példaprogram készítése. Objektum-, statikus- és

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

Dinamikus felületű alkalmazások. Stílusok, időzítő, képek

Dinamikus 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észletesebben