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

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

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

Átírás

1 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 a Stacked Widget, ami hasonlóan a QToolBox-hoz több lap megjelenítésére képes, de a lapjainak nincs fejléce. A Rajzolás lap az első (0 indexű) oldalra fog dolgozni. A jobboldalon a pnlright egy Stacked Widget Állítsuk be az első lapot és nevezzük el pnldraw-ra: Amikor a Tool Box-on egy fejlécet kiválasztunk az a currentchanged(int index) SIGNAL-t küldi el. Ennek lekezeléséhez adjuk hozzá a megfelelő függvény deklarációt a header fájlhoz: void on_pnxmenu_currentchanged(int index); A cpp fájlhoz pedig a definícióját: void GrafikaQTvel::on_tbxMenu_currentChanged(int index) if (index >= 0) if (index == 1) ui.pnlright->setcurrentindex(0); Azért ilyen bonyolult, mert ugyanazt a lapot szeretnénk több menüben is felhasználni, így nem lehet egyszerűen. ui.pnlright->setcurrentindex(index);-et használni. Ezután térhetünk rá a működtetésre. Még a tényleges rajzolás előtt intézzük el a beviteli mezőket! Egy jó programban az egyes mezők ezen a lapon csak akkor aktívak sőt esetleg csak akkor láthatóak, ha a megfelelő rajzolási lehetőség van kiválasztva. Arról is gondoskodni kell, hogy az egyes mezőkbe csak érvényes adatokat írhassunk be. Ehhez a megfelelő SLOT-ok függvényeit kell elkészíteni. A rádiógombokhoz a toggled(bool), a jelölőnégyzethez statechanged(int) a gombokhoz a

2 clicked(), a beviteli mezőkhöz a textchanged(qstring) SIGNAL-okat kell lekezelni. Ezek deklarációi a grafikaqtvel.h fájlban: void on_rbfreedraw_toggled(bool); void on_rbline_toggled(bool); void on_rbrectangle_toggled(bool); void on_rbtriangle_toggled(bool); void on_rbellipse_toggled(bool); void on_rbpolygon_toggled(bool); void on_rbcircle_toggled(bool); void on_chkfill_statechanged(int state); void on_btncleardatar_clicked(); void on_edtx1_textchanged (QString); void on_edty1_textchanged (QString); void on_edtw1_textchanged (QString); void on_edth1_textchanged (QString); Az egyes beviteli mezők lekezelésénél ügyelni kell arra, hogy éppen melyik rádiógomb van kijelölve. Az rbfreedraw állapota megváltozásának lekezelése: void GrafikaQTvel::on_rbFreeDraw_toggled(bool b) if (b) // cask ha ez van bejelölve ui.btndraw->setenabled(false); // nem kell a gombot benyomni a használathoz ui.canvas->startfreehanddrawing(); Nem keel egyik beviteli menu sem, elrejtjük őket else ui.edtx1->setvisible(false); ui.edty1->setvisible(false); ui.edtw1->setvisible(false); ui.edth1->setvisible(false); ui.canvas->stopfreehanddrawing(); A többi rádiógombnál a beviteli mezők közül mindazokat láthatóvá tesszük amelyekre szükség van. Ezek szövegeit is át kell írjuk. Sajnos a Qt-ben van egy kis hiba, ami miatt a Windows alatt Visual Studio-ban írt programoknál az ékezetes betűk néha hibásan jelennek meg. Ez egy példája annak, hogy még ma is gond van az egyes országok speciális betűjeivel.

3 Ez a hiba akkor fordul elő, amikor olyan betűket talál a szerkesztő, amiket a Windows-os kódlapon nem tud elmenteni. Ilyenkor a Windows felajánlja az oldalt elmenthetjük UTF-8 kódolással. Az UTF-8 fájlok elejéhez a szerkesztő hozzáragaszt egy Byte Order Mark (BOM) karakter sorozatot. Semmilyen UTF-8-at ismerő programnak nem szabad ezt megjelenítenie, át kell ezt ugrania. Valamiért a Qt Windows alatti fordításánál ez bezavar és a kiírt szövegben az UTF-8 kódok rosszul jelennek meg. A BOM-ra azonban nincs valójában szükség, ezért ha levágjuk a fájl elejéről a BOM byte-jait 1 akkor a lefordított programban a szöveg már hibátlan lesz. Ezután, amennyiben a fájl éppen meg volt nyitva a szerkesztőben, a VS felajánlja, hogy betölti a módosított fájlt. Fogadjuk ezt el! De ha módosítjuk, majd újra elmentjük a fájlt a VS-ből, akkor a BOM újra vissza kerül és ezt az eljárást újra el kell végezzük. Azt, hogy egy beviteli mezőben van-e valami beírva az isempty() függvénnyel nézhetjük meg. Rajzolni csak akkor szabad majd, ha minden szükséges beviteli mezőben van szám A többi beviteli mező függvényei ennek a fájlnak a végén megtalálhatóak. A rajzolás A rajzolást magát egy általunk készített widget kezeli, amit a festők vásznáról Canvas-nak neveztük el. Részletes leírása egy másik fájlban található, itt csak a használatáról beszélünk. A Canvas widget-re rajzolhatunk mindenféle vonalas ábrákat. Rajzolhatunk rá szabadkézzel, illetve megadott alakzatokat. A GrafikaQTvel program számára a Canvas program interfésze az érdekes csak. Ez a következő függvényeket jelenti: Canvas(QWidget *parent = 0); virtual ~Canvas() ; void StartFreeHandDrawing() _freehand = true; void StopFreehandDrawing() _freehand & false; // double buffer // lekérdezés bool IsModified() const return _modified; bool IsDrawing() const return _drawing; const QPoint &LastPos() const return _lastpoint; QColor GetPixel(const QPoint &pt); QColor PenColor() const return _pencolor; 1 Legegyszerűbb beolvasni a fájlt a Notepad++ szerkesztőbe és átírni a kódolását UTF-8 BOM-al ról UTF-8 ra, majd elmenteni.

4 int PenWidth() const return _penwidth; Qt::PenStyle PenStyle() const return _penstyle; Qt::PenCapStyle PenCapStyle() const return _pencap; Qt::PenJoinStyle PenJoinStyle()const return _penjoin; Qt::BrushStyle BrushStyle() const return _brushstyle; // Beállítás void SetPenWidth(int width) _penwidth = width; void SetPenColor(QColor color) _pencolor = color; void SetPenStyle (Qt::PenStyle &v) _penstyle= v; void SetPenCapStyle(Qt::PenCapStyle &v) _pencap= v; void SetPenJoinStyle(Qt::PenJoinStyle &v) _penjoin= v; void SetBrushStyle(Qt::BrushStyle &v) _brushstyle= v; // rajzolás void SetPixel(const QPoint &pt, QColor color); void FreeHand(); void LineTo(const QPoint &endpoint); void DrawEllipse(const QRect &rect); void DrawRect(const QRect & rect); void DrawFillRect(const QRect & rect); void DrawArc(double start, double end); void Clear(); // egy pont kirajzolása

5 Függelék grafikaqtve.h #ifndef GRAFIKAQTVEL_H #define GRAFIKAQTVEL_H #include <QtWidgets/QMainWindow> #include <QColor> #include "ui_grafikaqtvel.h" #include "canvas.h" class GrafikaQTvel : public QMainWindow Q_OBJECT public: GrafikaQTvel(QWidget *parent = 0); ~GrafikaQTvel(); void Parameters(); private: Ui::GrafikaQTvelClass ui; bool _busy = false; // gombokhoz használjuk // közös paraméterek Toll és Ecset lap RajzParameterek _params; // állapotok beolvasása után az egyes widgetek // adatait beállító függvények void _SaveState(); void _ReadState(); void _SetupControls(); // közös paraméterek Toll és Ecset lap void _SetupCommon(); // többi lap // Rajzolás int _usededitcnt = 0; void _SetupDrawing(); // ennyi edtx1, stb kell a Rajz gombokhoz // az egyes rádiógombok állítják be void _EnableDrawing(int edtcnt); // edtcnt = 1 - edtx1,,2 - edtx1 & edtx2,3 - edtx1 & edtx2 & edtw1,4 - edtx1 & edtx2 & edtw1 & edth1 void _AnyEditChanged(); // enable/disable rajz gomb // Grafika void _SetupGraph(); // Grafika void _SetupInteract(); // Fraktál void _SetupFractal(); void _SetupTransform(); void _SetupShapes(); void _SetupPictures();

6 void _SetupFilters(); private slots: void on_tbxmenu_currentchanged(int index); // közös paraméterek void on_sbpenwidth_valuechanged(int); void on_cbpenstyle_currentindexchanged(int index); void on_cbpencap_currentindexchanged(int index); void on_cbpenjoin_currentindexchanged( int index); void on_cbbrushstyle_currentindexchanged(int index); void on_btnpencolor_clicked(); void on_btnbrushcolor_clicked(); // rajzolás lap void on_btnclearcanvas_clicked(); void on_rbfreedraw_toggled(bool); void on_rbline_toggled(bool); void on_rbrectangle_toggled(bool); void on_rbtriangle_toggled(bool); void on_rbellipse_toggled(bool); void on_rbpolygon_toggled(bool); void on_rbcircle_toggled(bool); void on_chkfill_statechanged(int state); void on_btncleardatar_clicked(); void on_btndraw_clicked(); void on_edtx1_textchanged(qstring); void on_edty1_textchanged(qstring); void on_edtw1_textchanged(qstring); void on_edth1_textchanged(qstring); ; #endif // GRAFIKAQTVEL_H grafikaqtvel.cpp #include "grafikaqtvel.h" #include <QSettings> #include <QColorDialog> GrafikaQTvel::GrafikaQTvel(QWidget *parent) : QMainWindow(parent) ui.setupui(this); _ReadState(); // beállítja a canvas paramétereket is _SetupControls(); // beállítja a widgetek értékeit // Ha nem mentettük el az egyes lapok tartalmát, akkor // mindig szabadkézi rajzolással tudjuk kezdeni ui.rbfreedraw->toggled(true); ui.canvas->startfreehanddrawing(); GrafikaQTvel::~GrafikaQTvel()

7 _SaveState(); void GrafikaQTvel::_SaveState() QSettings settings("programozás 3", "GrafikaQtvel"); // A geometria settings.begingroup("ablak"); settings.setvalue("geometry", savegeometry()); settings.setvalue("state", savestate()); settings.endgroup(); // Közös rajzolási beállítások: settings.begingroup("toll"); settings.setvalue("vastagság", _params.penwidth); settings.setvalue("szín", _params.pencolor); settings.setvalue("stílus", (int)_params.penstyle); settings.setvalue("vonalvég", _params.pencap); settings.setvalue("kapcsolódás", _params.penjoin); settings.endgroup(); settings.begingroup("ecset"); settings.setvalue("szín", _params.brushcolor); settings.setvalue("stílus", (int)_params.brushstyle); settings.endgroup(); // Egyéb paraméterek elmentése void GrafikaQTvel::_ReadState() QSettings settings("programozás 3", "GrafikaQtvel"); // A geometria settings.begingroup("ablak"); restoregeometry(settings.value("geometry").tobytearray()); restorestate(settings.value("state").tobytearray()); settings.endgroup(); int iv; settings.begingroup("toll"); _params.penwidth=settings.value("vastagság", 1).toInt(); //1: default // Mival a QColor nem QVariant _params.pencolor = settings.value("szín", 0).value<QColor>(); _params.penstyle = (Qt::PenStyle)settings.value("Stílus", (int)qt::solidline).toint(); _params.pencap = (Qt::PenCapStyle)settings.value("Vonalvég", Qt::FlatCap).toInt(); _params.penjoin = (Qt::PenJoinStyle)settings.value("Kapcsolódás", Qt::MiterJoin).toInt();

8 settings.endgroup(); settings.begingroup("ecset"); _params.brushcolor = settings.value("szín", 0xFFFFFF).value<QColor>(); _params.brushstyle = (Qt::BrushStyle)settings.value("Stílus", (int)qt::nobrush).toint(); settings.endgroup(); // Egyéb paraméterek beolvasása ui.canvas->setparameters(_params); // A beolvasott adatok alapján beállítjuk az egyes // gombokat, Combo BOx-okat és a mezők tartalmát void GrafikaQTvel::_SetupControls() _SetupCommon(); // toll és ecset lap _SetupDrawing(); // rajzolás lap _SetupGraph(); _SetupInteract(); _SetupFractal(); _SetupTransform(); _SetupShapes(); _SetupPictures(); _SetupFilters(); // közös paraméterek Toll és Ecset lap void GrafikaQTvel::_SetupCommon() ui.sbpenwidth->setvalue(_params.penwidth); ui.cbpenstyle->setcurrentindex(_params.penstyle); ui.cbpencap->setcurrentindex(_params.pencap); ui.cbpenjoin->setcurrentindex(_params.penjoin); ui.cbbrushstyle->setcurrentindex(_params.brushstyle); ui.btnpencolor->setstylesheet("background:" + _params.pencolor.name()); ui.btnbrushcolor->setstylesheet("background:" + _params.brushcolor.name()); // TODO: többi lap egyelőre nem írtuk meg void GrafikaQTvel::_SetupDrawing() void GrafikaQTvel::_SetupGraph() void GrafikaQTvel::_SetupInteract() void GrafikaQTvel::_SetupFractal() void GrafikaQTvel::_SetupTransform() void GrafikaQTvel::_SetupShapes() void GrafikaQTvel::_SetupPictures() void GrafikaQTvel::_SetupFilters() // SLOT-ok void GrafikaQTvel::on_tbxMenu_currentChanged(int index)

9 if (index >= 0) if (index == 1) ui.pnlright->setcurrentindex(0); // common void GrafikaQTvel::on_sbPenWidth_valueChanged(int val) _params.penwidth = val; ui.canvas->setparameters(_params); // frissítés void GrafikaQTvel::on_cbPenStyle_currentIndexChanged(int index) _params.penstyle = (Qt::PenStyle)index; ui.canvas->setparameters(_params); // frissítés void GrafikaQTvel::on_cbPenCap_currentIndexChanged(int index) _params.pencap = (Qt::PenCapStyle)index; ui.canvas->setparameters(_params); // frissítés void GrafikaQTvel::on_cbPenJoin_currentIndexChanged(int index) _params.penjoin = (Qt::PenJoinStyle)index; ui.canvas->setparameters(_params); // frissítés void GrafikaQTvel::on_cbBrushStyle_currentIndexChanged(int index) _params.brushstyle = (Qt::BrushStyle)index; ui.canvas->setparameters(_params); // frissítés void GrafikaQTvel::on_btnPenColor_clicked() QString qs = ui.btnpencolor->stylesheet(); // a szöveg: background:#rrggbb alakú QColor col = QColor(qs.mid(qs.indexOf(":"))); col = QColorDialog::getColor(col, this, "Válassz toll színt!"); if (col.isvalid()) // egyébként az "Elvet" volt megnyomva _params.pencolor = col; ui.btnpencolor->setstylesheet("background:" + col.name()); ui.canvas->setparameters(_params); // frissítés

10 void GrafikaQTvel::on_btnBrushColor_clicked() QString qs = ui.btnbrushcolor->stylesheet(); // a szöveg: background:#rrggbb alakú QColor col = QColor(qs.mid(qs.indexOf(":"))); col = QColorDialog::getColor(col, this, "Válassz ecset színt!"); if (col.isvalid()) // egyébként az "Elvet" volt megnyomva _params.brushcolor = col; ui.btnbrushcolor->setstylesheet("background:" + col.name()); ui.canvas->setparameters(_params); // frissítés // rajzol void GrafikaQTvel::on_btnClearCanvas_clicked() ui.canvas->clear(); void GrafikaQTvel::on_btnDraw_clicked() int x1 = ui.edtx1->text().toint(), y1 = ui.edty1->text().toint(), x2 = ui.edtw1->text().toint(), y2 = ui.edth1->text().toint(); if (ui.rbline->ischecked()) x2 += x1; y2 += y1; ui.canvas->drawline(qpoint(x1, y1), QPoint(x2, y2)); else if (ui.rbrectangle->ischecked()) ui.canvas->drawrect(qrect(x1, y1, x2, y2), ui.chkfill ->ischecked()); else if (ui.rbellipse->ischecked()) ui.canvas->drawellipse(qrect(x1, y1, x2, y2), ui.chkfill ->ischecked()); else if(ui.rbcircle->ischecked()) ui.canvas->drawellipse(qrect(x1, y1, x2, x2), ui.chkfill ->ischecked()); else if (ui.rbtriangle->ischecked())

11 ui.canvas->drawtriangle(qpoint(x1,y1), x2, ui.chkfill ->ischecked()); else if (ui.rbpolygon->ischecked()) ui.canvas->drawpolygon(qpoint(x1, y1), x2, y2, ui.chkfill ->ischecked()); void GrafikaQTvel::on_rbFreeDraw_toggled(bool b) if (b) ui.btndraw->setenabled(false); ui.canvas->startfreehanddrawing(); ui.edtx1->setvisible(false); ui.edty1->setvisible(false); ui.edtw1->setvisible(false); ui.edth1->setvisible(false); else ui.canvas->stopfreehanddrawing(); // Enable/disable Rajz gomb void GrafikaQTvel::_EnableDrawing(int edtcnt) bool b = false; switch (edtcnt) // trükk: nincs break! case 4: b = ui.edth1->text().isempty(); case 3: b = ui.edtw1->text().isempty(); case 2: b = ui.edty1->text().isempty(); case 1: b = ui.edtx1->text().isempty(); break; default: break; ui.btndraw->setenabled(!b); void GrafikaQTvel::on_rbLine_toggled(bool b) if (b) _EnableDrawing(_usedEditCnt = 4); ui.lbldrawwidth->settext("x2"); ui.lbldrawheight->settext("y2");

12 ui.lbldrawwidth->setvisible(true); ui.lbldrawheight->setvisible(true); ui.edtx1->setvisible(true); ui.edty1->setvisible(true); ui.edtw1->setvisible(true); ui.edth1->setvisible(true); void GrafikaQTvel::on_rbRectangle_toggled(bool b) if (b) _EnableDrawing(_usedEditCnt = 4); ui.lbldrawwidth->settext("szélesség"); ui.lbldrawheight->settext("magasság"); ui.lbldrawwidth->setvisible(true); ui.lbldrawheight->setvisible(true); ui.edtx1->setvisible(true); ui.edty1->setvisible(true); ui.edtw1->setvisible(true); ui.edth1->setvisible(true); void GrafikaQTvel::on_rbTriangle_toggled(bool b) if (b) _EnableDrawing(_usedEditCnt = 3); ui.lbldrawwidth->settext("oldalhossz:"); ui.lbldrawwidth->setvisible(true); ui.lbldrawheight->setvisible(false); ui.edtx1->setvisible(true); ui.edty1->setvisible(true); ui.edtw1->setvisible(true); ui.edth1->setvisible(false); void GrafikaQTvel::on_rbEllipse_toggled(bool b) if (b) _EnableDrawing(_usedEditCnt = 4); ui.lbldrawwidth->settext("szélesség"); ui.lbldrawheight->settext("magasság"); ui.lbldrawwidth->setvisible(true); ui.lbldrawheight->setvisible(true); ui.edtx1->setvisible(true); ui.edty1->setvisible(true); ui.edtw1->setvisible(true);

13 ui.edth1->setvisible(true); void GrafikaQTvel::on_rbPolygon_toggled(bool b) if (b) _EnableDrawing(_usedEditCnt = 4); ui.lbldrawwidth->settext("oldalhossz"); ui.lbldrawheight->settext("oldalszám"); ui.lbldrawwidth->setvisible(true); ui.lbldrawheight->setvisible(true); ui.edtx1->setvisible(true); ui.edty1->setvisible(true); ui.edtw1->setvisible(true); ui.edth1->setvisible(true); void GrafikaQTvel::on_rbCircle_toggled(bool b) if (b) _EnableDrawing(_usedEditCnt = 3); ui.lbldrawwidth->settext("sugár"); ui.lbldrawwidth->setvisible(true); ui.lbldrawheight->setvisible(false); ui.edtx1->setvisible(true); ui.edty1->setvisible(true); ui.edtw1->setvisible(true); ui.edth1->setvisible(false); void GrafikaQTvel::on_ChkFill_stateChanged(int state) void GrafikaQTvel::on_btnClearDataR_clicked() ui.edtx1->clear(); ui.edty1->clear(); ui.edtw1->clear(); ui.edth1->clear(); ui.btndraw->setenabled(!ui.rbfreedraw->ischecked()); void GrafikaQTvel::_AnyEditChanged() if (ui.rbfreedraw->ischecked())

14 return; _EnableDrawing(_usedEditCnt); void GrafikaQTvel::on_edtX1_textChanged(QString s) _AnyEditChanged(); void GrafikaQTvel::on_edtY1_textChanged(QString s) _AnyEditChanged(); void GrafikaQTvel::on_edtW1_textChanged(QString s) _AnyEditChanged(); void GrafikaQTvel::on_edtH1_textChanged(QString s) _AnyEditChanged();

bool _freehand = false; QPoint _lastpoint; // ebben a pontban volt az utolsó rajzolásnál az egérmutató

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

if(_param.antialias) painter.setrenderhint(qpainter::antialiasing, true);

if(_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észletesebben

QT Grafika az alap alkalmazás (GrafikaQtvel) működése

QT Grafika az alap alkalmazás (GrafikaQtvel) működése QT Grafika az alap alkalmazás (GrafikaQtvel) működése Állapot mentése és visszaállítása Intézzük el, hogy a program megjegyezze a beállításainkat, beleértve az ablak pozícióját és indításkor az utoljára

Részletesebben

Widget-ünket a festők vásznáról Canvas-nak nevezzük el. Mit kell a widgetnek tudnia?

Widget-ünket a festők vásznáról Canvas-nak nevezzük el. Mit kell a widgetnek tudnia? A Canvas widget Widget-ünket a festők vásznáról Canvas-nak nevezzük el. Mit kell a widgetnek tudnia? 1. Más widgetekre rárakható legyen, 2. Ha a befoglaló (szülő) widget mérete változik az ő mérete is

Részletesebben

QT Grafika Az alap alkalmazás felhasználói felülete

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

Képfájlok beolvasása és megjelenítése

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

3. Osztályok II. Programozás II

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

Részletesebben

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.

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

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

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

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

A C# programozási nyelv alapjai

A C# programozási nyelv alapjai A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet

Részletesebben

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

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

Részletesebben

117. AA Megoldó Alfréd AA 117.

117. AA Megoldó Alfréd AA 117. Programozás alapjai 2. (inf.) pót-pótzárthelyi 2011.05.26. gyak. hiányzás: kzhpont: MEG123 IB.028/117. NZH:0 PZH:n Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,

Részletesebben

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás Számítástechnika II. BMEKOKAA153 4. Előadás Dr. Bécsi Tamás A RadioButton komponens Tulajdonságok: bool Checked Állapotjelző két állapot esetén: (true: bejelölve,false: nem bejelölve) Események: Esemény

Részletesebben

Programozás II gyakorlat. 4. Öröklődés

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

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem C# nyelv alapjai Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem Objektumorientált programozás C# alapokon tananyag Tartalom Bevezetés Lokális változó Utasítások Szójáték Why do all real

Részletesebben

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 1. Előadás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási Tanszék www.kjit.bme.hu Programozás

Részletesebben

Osztály és objektum fogalma

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

Tervminták a valósidejű gyakorlatban

Tervminták a valósidejű gyakorlatban Tervminták a valósidejű gyakorlatban Forrás Ezeknek a diáknak a forrása a Game Programming Patterns című könyv Online elérhető a szerző oldaláról: http://gameprogrammingpatterns.com/contents.htm Game Loop

Részletesebben

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

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

Részletesebben

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

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

Stack Vezérlés szerkezet Adat 2.

Stack Vezérlés szerkezet Adat 2. Stack Vezérlés szerkezet Adat 2. Kód visszafejtés. Izsó Tamás 2013. november 14. Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 1 Változó típusú paraméterekátadása 1. #include < s t d i o. h> int64 myfunc

Részletesebben

Informatika terméktervezőknek

Informatika terméktervezőknek Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások

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

components : IContainer dx : int dy : int tmidőzítő : Timer toolstripseparator1 : ToolStripSeparator tsmikilépés : ToolStripMenuItem

components : IContainer dx : int dy : int tmidőzítő : Timer toolstripseparator1 : ToolStripSeparator tsmikilépés : ToolStripMenuItem http:www.johanyak.hu Analóg óra Készítsünk egy analóg órát megjelenítő alkalmazást. A feladat egy lehetséges megoldása a következő: 1. Az alkalmazás vázának automatikus generálása Fájl menü, New, Project

Részletesebben

Elemi alkalmazások fejlesztése III

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

Részletesebben

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

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

Részletesebben

Elemi alkalmazások fejlesztése III.

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

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

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

Részletesebben

BME MOGI Gépészeti informatika 15.

BME MOGI Gépészeti informatika 15. BME MOGI Gépészeti informatika 15. 1. feladat Készítsen alkalmazást a y=2*sin(3*x-π/4)-1 függvény ábrázolására a [-2π; 2π] intervallumban 0,1-es lépésközzel! Ezen az intervallumon a függvény értékkészlete

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

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

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606 Dr. Bécsi Tamás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási

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

Alprogramok, paraméterátadás

Alprogramok, paraméterátadás ELTE Informatikai Kar, Programozási Nyelvek és Fordítóprogramok Tanszék October 24, 2016 Programozási nyelvek Alprogramok Függvények, eljárások Metódusok Korutinok stb. Alprogramok Alprogram: olyan nyelvi

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

Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, MapInfo program alkalmazásával Útmutató 2010.

Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, MapInfo program alkalmazásával Útmutató 2010. Országos Területrendezési Terv térképi mellékleteinek WMS szolgáltatással történő elérése, MapInfo program alkalmazásával Útmutató 2010. június 1. BEVEZETÉS Az útmutató célja az Országos Területrendezési

Részletesebben

A feladat lényege egy felhasználói típusnak a zsák típusnak a megvalósítása.

A feladat lényege egy felhasználói típusnak a zsák típusnak a megvalósítása. Feladat Készítsen egy egész számokat tartalmazó zsák típust! A zsákot dinamikusan lefoglalt tömb segítségével ábrázolja! Implementálja a szokásos műveleteket (elem betevése, kivétele, üres-e a halmaz,

Részletesebben

Feladat. Tervezés és implementálás

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

BME MOGI Gépészeti informatika 18. Grafika, fájlkezelés gyakorló óra. 1. feladat Készítsen alkalmazást az = +

BME MOGI Gépészeti informatika 18. Grafika, fájlkezelés gyakorló óra. 1. feladat Készítsen alkalmazást az = + BME MOGI Gépészeti informatika 18. Grafika, fájlkezelés gyakorló óra 1. feladat Készítsen alkalmazást az = + függvény ábrázolására! Az értelmezési tartomány a [-6;5] intervallum, a lépésköz 0,1 legyen!

Részletesebben

Programozás alapjai 9.Gy: Struktúra 2.

Programozás alapjai 9.Gy: Struktúra 2. Programozás alapjai 9.Gy: Struktúra 2. Ördögi részletek P R O A L A G 35/1 B ITv: MAN 2018.11.10 Euró árfolyam statisztika Az EURO árfolyamát egy negyedéven keresztül hetente nyilvántartjuk (HUF / EUR).

Részletesebben

BME MOGI Gépészeti informatika 7.

BME MOGI Gépészeti informatika 7. BME MOGI Gépészeti informatika 7. 1. feladat Írjon Windows Forms alkalmazást egy kör és egy pont kölcsönös helyzetének vizsgálatára! A feladat megoldásához hozza létre a következő osztályokat! Pont osztály:

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak

Részletesebben

Bevezetés a programozásba II 1. gyakorlat. A grafikus könyvtár használata, alakzatok rajzolása

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

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

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

Részletesebben

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

Bevezetés a programozásba előadás: Öröklődés

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

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 6. gyakorlat C++ alapok, szövegkezelés Surányi Márton PPKE-ITK 2010.10.12. Forrásfájlok: *.cpp fájlok Fordítás: a folyamat, amikor a forrásfájlból futtatható állományt állítunk

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

Országos Területrendezési Terv térképi mellékleteinek WMS szolgáltatással történő elérése, MapInfo program alkalmazásával

Országos Területrendezési Terv térképi mellékleteinek WMS szolgáltatással történő elérése, MapInfo program alkalmazásával TeIR Országos Területrendezési Terv térképi mellékleteinek WMS szolgáltatással történő elérése, MapInfo program alkalmazásával Felhasználói útmutató Budapest, 2015. április 1 BEVEZETÉS Az útmutató célja

Részletesebben

Algoritmizálás + kódolás C++ nyelven és Pascalban

Algoritmizálás + kódolás C++ nyelven és Pascalban Algoritmizálás + kódolás nyelven és ban Motiváció A Programozási alapismeretek tárgyban az algoritmizáláshoz struktogramot, a kódoláshoz nyelvet használunk, a Közismereti informatikában (a közoktatásban

Részletesebben

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Programozás alapjai gyakorlat. 2. gyakorlat C alapok Programozás alapjai gyakorlat 2. gyakorlat C alapok 2016-2017 Bordé Sándor 2 Forráskód, fordító, futtatható állomány Először megírjuk a programunk kódját (forráskód) Egyszerű szövegszerkesztőben vagy fejlesztőkörnyezettel

Részletesebben

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás 4.11. A C előfeldolgozó rendszer A fordítás első lépése a C esetében a különböző nyelvi kiterjesztések feldolgozása: másik állomány tartalmának

Részletesebben

C#, OOP. Osztályok tervezése C#-ban

C#, OOP. Osztályok tervezése C#-ban C#, OOP Osztályok tervezése C#-ban OOP Létrehozás (creating) Megszüntetés (destroying) Túlterhelés (overlading) Felsorolás típus (enumerated types) 2 Hajó osztály Sailboat class using System; class Sailboat

Részletesebben

Számítógépes grafika

Számítógépes grafika Számítógépes grafika XXVIII. rész OpenGL Visual C++-ban Ha OpenGL programot szeretnénk létrehozni VisualC++-ban, három lehetőségünk van: Win32 alkalmazás, Win32 konzol alkalmazás és MFC platformon történő

Részletesebben

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere 2012. április 10. A PROGAMOZÁS ALAPJAI 1 Vitéz András egyetemi adjunktus BME Híradástechnikai Tanszék vitez@hit.bme.hu Miről lesz ma szó? alaki szabályok használata - mintapélda használata - mintapélda

Részletesebben

Mintavételes szabályozás mikrovezérlő segítségével

Mintavételes szabályozás mikrovezérlő segítségével Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés

Részletesebben

Java Programozás 6. Gy: Java alapok. Adatkezelő 2.rész

Java Programozás 6. Gy: Java alapok. Adatkezelő 2.rész Java Programozás 6. Gy: Java alapok Adatkezelő 2.rész 25/1 B ITv: MAN 2018.04.13 A feladat Feladat: folytassuk a panel életre keltését! - Alakítsuk ki a Lista panelt - Betöltéskor olvassuk be az adatokat

Részletesebben

Programozás II gyakorlat. 6. Polimorfizmus

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

Programozás I. 5. Előadás: Függvények

Programozás I. 5. Előadás: Függvények Programozás I 5. Előadás: Függvények Függvény Egy alprogram Egy C program általában több kisméretű, könnyen értelmezhető függvényből áll Egy függvény megtalálható minden C programban: ez a main függvény

Részletesebben

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

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész Java Programozás 9. Gy: Java alapok Adatkezelő 5.rész 15/1 B ITv: MAN 2018.04.22 A Keresés funkció Programlogika: 1. A keresés az etm táblamodellben fog keresni, és a találat rekordokat átmásolja egy másik

Részletesebben

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport 10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)

Részletesebben

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával) Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával) I. A nyelv története C++ C (ős: B???) 1972 Ritchie AT&T Bell laboratórium UNIX 1978 Kernighan & Ritchie az első tankönyv,

Részletesebben

Forráskód formázási szabályok

Forráskód formázási szabályok Forráskód formázási szabályok Írta: Halmai Csongor, Webcenter Bt. A php és html kódrészletek Ugyanazon fájlon belül nem szerepelhet php kód és html tartalom. E kettő különválasztására smarty-t vagy más

Részletesebben

1. Alapok. Programozás II

1. Alapok. Programozás II 1. Alapok Programozás II Elérhetőség Név: Smidla József Elérhetőség: smidla dcs.uni-pannon.hu Szoba: I916 2 Irodalom Bjarne Stroustrup: A C++ programozási nyelv 3 Irodalom Erich Gamma, Richard Helm, Ralph

Részletesebben

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

C programozás. 6 óra Függvények, függvényszerű makrók, globális és C programozás 6 óra Függvények, függvényszerű makrók, globális és lokális változók 1.Azonosítók A program bizonyos összetevőire névvel (azonosító) hivatkozunk Első karakter: _ vagy betű (csak ez lehet,

Részletesebben

A lista eleme. mutató rész. adat rész. Listaelem létrehozása. Node Deklarálás. Létrehozás. Az elemet nekünk kell bef zni a listába

A lista eleme. mutató rész. adat rész. Listaelem létrehozása. Node Deklarálás. Létrehozás. Az elemet nekünk kell bef zni a listába A lista eleme 0 adat rész mutató rész Listaelem létrehozása p: Node 0 0 3 0 Az elemet nekünk kell bef zni a listába Deklarálás struct Node { int int value; Node* next; next; adattagok Létrehozás Node*

Részletesebben

4. Öröklődés. Programozás II

4. Ö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észletesebben

Programozási nyelvek JAVA EA+GY 1. gyakolat

Programozási nyelvek JAVA EA+GY 1. gyakolat Programozási nyelvek JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2018/2019. tavaszi félév Tartalom 1 A Java alapjai 2 Java program

Részletesebben

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010 Programozási technikák Pál László Sapientia EMTE, Csíkszereda, 2009/2010 9. ELŐADÁS Grafika Delphiben 2 Grafikus objektumok Tervezési időben létrehozható grafikus elemek: TImage (kép) TShape (alakzat)

Részletesebben

Algoritmusok és adatszerkezetek II.

Algoritmusok és adatszerkezetek II. Algoritmusok és adatszerkezetek II. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 6. Ugrólista (Skiplist) Definíció. Olyan adatszerkezet, amelyre

Részletesebben

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés Bevezetés a programozásba 2 7. Előadás: Objektumszű és osztályszű elemek, hibakezelés ISMÉTLÉS Osztály class Particle { public: Particle( X, X, Y); virtual void mozog( ); ); virtual void rajzol( ) const;

Részletesebben

Virtuális függvények (late binding)

Virtuális függvények (late binding) Virtuális függvények (late binding) Miskolci Egyetem Általános Informatikai Tanszék Virtuális függvények CPP5 / 1 Azonos nevű függvények megkülönböztetése paraméterszignatúra (függvény overloading) - egy

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

BME MOGI Gépészeti informatika 14.

BME MOGI Gépészeti informatika 14. BME MOGI Gépészeti informatika 14. 1. feladat Készítsen alkalmazást, mely a képernyő közepére egy véletlen színnel kitöltött kört rajzol! A színváltást nyomógomb segítségével oldja meg! A rajzolást a form

Részletesebben

A C# PROGRAMOZÁSI NYELV

A C# PROGRAMOZÁSI NYELV A C# PROGRAMOZÁSI NYELV 2010.02.23. Bevezetés C# nyelv jellemzői 2 Kis és NAGY betű érzékeny Minden utasítást pontos vessző zár. Utasítás zárójel a:,. .NET Framework keretrendszerek 3 Microsoft.NET Framework

Részletesebben

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3) Programozás alapjai C nyelv 5. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.17. -1- Tömbök Azonos típusú adatok tárolására. Index

Részletesebben

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

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

Részletesebben

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével

Részletesebben

C programozási nyelv

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

Bevezetés a programozásba Előadás: A const

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

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

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

Részletesebben

Mobil alkalmazások fejlesztése

Mobil alkalmazások fejlesztése Tartalom Peekabo a legkisebb projekt... 2 A fordítás és szerkesztés folyamata... 2 Peekabo.mmp... 2 Peekaboo.pan... 3 Peekaboo.rss... 3 Peekaboo.rls... 4 Peekaboo.hrh... 4 Főprogram... 5 Peekaboo.cpp...

Részletesebben

Grafikus felületek a programozó szempontjából grafikus elemek absztrakt reprezentációja az egyes elemek tulajdonságait leíró adatstruktúrák.

Grafikus felületek a programozó szempontjából grafikus elemek absztrakt reprezentációja az egyes elemek tulajdonságait leíró adatstruktúrák. AWT Grafika Bevezető Grafikus felületek a programozó szempontjából grafikus elemek absztrakt reprezentációja az egyes elemek tulajdonságait leíró adatstruktúrák. Fogalmak: geometriai alakzatok, felületek,

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

Elemi alkalmazások fejlesztése III

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

Részletesebben

C# osztályok. Krizsán Zoltán

C# osztályok. Krizsán Zoltán C# osztályok Krizsán Zoltán Fogalma Önálló hatáskőrrel rendelkező, absztrakt adattípus, amely több, különböző elemet tartalmazhat. Minden esetben a heap-en jön létre! A programozó hozza létre, de a GC

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

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

Ugráló gomb oktatási segédlet Ugráló gomb

Ugráló gomb oktatási segédlet Ugráló gomb 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

Programozás alapjai II. (1. ea) C++

Programozás alapjai II. (1. ea) C++ Programozás alapjai II. (1. ea) C++ C++ kialakulása, nem OO újdonságok: Szeberényi Imre, Somogyi Péter BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2019.02.05.

Részletesebben

Programozás alapjai II. (1. ea) C++

Programozás alapjai II. (1. ea) C++ Programozás alapjai II. (1. ea) C++ C++ kialakulása, nem OO újdonságok: Szeberényi Imre, Somogyi Péter BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2019.02.05.

Részletesebben