Képfájlok beolvasása és megjelenítése
|
|
- Sarolta Pásztor
- 7 évvel ezelőtt
- Látták:
Átírás
1 Programozás 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 verziója letölthető a szerverről. Nevezzük át a GrafikaQtvel könyvtárat pl. GrafikaQtvel_rajzolas-ra. A tanszéki fájl szerverről töltsük le, és bontsuk ki a GrafikaQvel_fraktal.7z fájlt, ami a program a Visual Studio 2016, és QTCreator alatt lefordítható verziója. Ez annyiban különbözik az előző Interaktivitás lapot használó programtól, hogy van benn néhány pótlólagos segítő függvény pl. az eredeti koordináták visszaállítására. A Camvas osztály lehetőségei is kibővültek azzal, hogy képes a gumiszalag kezelésére és a gumiszalagos kiválasztás végén egy SIGNAL-ban elküldi a kiválasztott terület adatait egy QRect strukturában. Ez használható bármilyen Canvas objektumon kijelölésre. Egy új függvény: void AllowSelections(bool allow) _selectionallowed = allow; engedélyezi, vagy letiltja a kijelölést. A MousePressEvent(), MouseMoveEvent() és MouseReleaseEvent() pedig lekezeli azt, illetve a LastPosChanged(QMouseEvent *) melett elküldi a void RectangleSelected(QRect); SIGNAL-t is. Bónuszként a Fraktál lap is él, és a fraktálok közül a Mandelbrot halmaz megjelenítésére és abba belenagyításra is képes. Ez sok apró feladat megoldását követelte meg 1 - akit érdekel nézze meg a kódot és, ha kérdése van szívesen segítek de minket csak annyi érint, hogy a kép pontjainak megjelenítéséhez a Canvas::SetPixel(QPoint,QColor) függvényt használjuk. 1 Pl.a számolás félbeszakítását, hogy egy újat kezdhetjünk.
2 Programozás Képeken végezhető műveletek 1. Betöltés fájlból. Sok képformátum van ezek közül a Qt nem mindegyiket támogatja. 2. Kiírás fájlba adott képformátumba. 3. Az eredeti, vagy a feldolgozott kép megjelenítése 4. Nagyítás/kicsinyítés 5. Forgatás speciális szögekkel (90 o, -90 o, 180 o ) 6. Tükrözés vízszintesen és függőlegesen 7. Forgatás tetszőleges szöggel 8. Beillesztés a látható képterületbe 9. 1:1 méretű megjelenítés. Ekkor lehet, hogy az egész kép nem fér bele a látható részbe, ilyenkor általában ide-oda lehet húzogatni a látható részt 10. Speciális fotószűrők alkalmazása: pl. élesítés, elmosás, negatív kép, átszínezés 11. Élkeresés 12. Képek összerakása egy képpé (rétegek kezelése), miközben az egyes pixeleken az összetevő képek pixeleiből adott szabályok szerint határozzuk meg. Ilyen szabály lehet pl., hogy csak az eredmény a sötétebb pixel lesz. 13. A QImage (QPixmap) ezen feladatok mindegyikének megoldására alkalmas. Mi a QImage-t fogjuk használni 2. Koordináta transzformációk A QMatrix osztály Egy 2D transzformációt speciális mátrixokkal írhatunk le. Ezek a QMatrix és a QTransform. A QMatrix csak 2D transzformációkat tesz lehetővé, a QTransform tetszőleges 3D transzformációkat 2D-ben. Egy QMatrix így néz ki: 2 Az itt bemutatott függvényeknek más túlterhelt változataik is lehetnek, és a QImage-nak sokkal több függvénye van, ami hasonló feladatokra használható. Pl. a load() függvénynek két verziója van és képek betölthetőek a loadfromdata() függvényekkel is.
3 Programozás A transzformációkat mátrix szorzással kaphatjuk meg. Ha pl. r = (x, y) a transzformáció előtti, r' = (x', y') a transzformáció utáni koordináták és m egy QMatrix, akkor r' = m r, ill. x'= m11 x + m21 y + dx és x'= m22 y + m12 x + dy A visszatranszformáláshoz az inverz mátrixot használjuk, amit az m-ből az inverted() függvényével kaphatunk meg. A mátrix elemeit megadhatjuk a konstruktorokban: QMatrix(qreal m11, qreal m12, qreal m21, qreal m22, qreal dx, qreal dy) QMatrix(const QMatrix &matrix) vagy később is a void QMatrix::setMatrix(qreal m11, qreal m12, qreal m21, qreal m22, qreal dx, qreal dy) függvénnyel, illetve az egyes transzformációkhoz tartozó függvényekkel. A mátrix elemeit az m11( ), m12( ),m13( ), dx( ), ill. dy( ) függvényekkel kérhetjük le. A mátrix determinánsát a determinant() függvény. Az isinvertible() megmondja a mátrix invertálható e. A transzformációk lehetnek: eltolások, forgatások, tengelyre, vagy pontra tükrözések és nyírási deformációk. amikkel lényegében egy ferdeszögű koordinátarendszerre térünk át. Az y tengelyhez derékszögű rendszerben az x = 0 érték tartozik. Az x irányú sx tényezőjű nyírás azt jelenti, hogy az y tengely Y magasságban levő pontja az eredeti x tengelytől sx * Y távolságra kerül. Az sx=1.0 érték az y tengely 45 fokos szögű elforgatásának felel meg 3. Pl egy 100 x 100pixeles négyzetre: 3 Ez a képernyő, illetve egy widget koordinátarendszerében, ahol az y tengely lefelé mutat tehát az x tengelyre tükrözve van balra forgatásnak felel meg.
4 Programozás sx=0, sy=0 sx=1.0, sy=0 sx=0, sy=1 Az egyes transzformációk megadásának függvényei: translate(qpointf &eltolás) eltolja a koordinátarendszert egy vektorral rotate(qreal szög_fokokban) Egy fokokban mért szögű elforgatás QMatrix-át a rotate(qreal ) írja le. Pozitív szög az óramutató járásával ellentétes irányú forgatást jelent matematikailag. Mivel azonban a koordinátarendszer y tengelye a Widgetek esetében általában lefelé mutat, vagyis a koordinátarendszer a normál koordinátarendszereink tükörképe, ezért a pozitív szög jobbra fog forgatni. scale(qreal x_szorzó, qreal y_szorzó) átskálázza a koordinátarendszert a két szorzóval, vagyis minden a koordináta a szorzóval több pixelt jelent. shear(qreal sx, qreal sy) nyíró transzformációt végez Több transzformáció egymás utáni elvégzése az egyes transzformációs mátrixok szorzatával írható le. A reset( ) függvény egységmátrixot csinál a mátrixból, ahol az x, y eltolások is 0-k és az isidentity() függvény megmondja, hogy a mátrix az egységmátrix-e. A sokszorosan túlterhelt map( ) függvények az argumentumaiknak megfelelő mennyiségeket (valós, vagy pixel koordináták, QPoint, QPointF,QLine, QLineF,QPolygon,QPolygonF, QRect, QRectF, stb) transzformálják a mátrixszal. Természetesen a szokásos mátrix műveletek is definiálva vannak. A QTransform osztály Bár a QMatrix-al sok transzformáció elvégezhető ezek mind a 2D síkbeli transzformációk. A QTtransform mátrix azonban valódi 3 x 3-as mátrix. Rendelkezik a QMatrix minden transzformációjával (rotate(), scale(), shear() és translate()), de térbeli transformációkra is ad lehetőséget. Pl. egy alakzatot/képet elforgathatunk vele bármelyik. tengely körül: QTransform &QTransform::rotate(qreal szög_fokban, Qt::Axis tengely = Qt::ZAxis) A tengely lehet Qt::XAxis, Qt::YAxis és Qt::ZAxis. A QTransform &QTransform::rotateRadian(qreal szög, Qt::Axis tengely = Qt::ZAxis)
5 Programozás függvény radiánban megadott szöggel forgat el. A forgatás iránya most is attól függ, hogy valós, vagy képernyő/widget koordinátákat használunk. A mátrixelemek ugyanúgy megadhatóak a konstruktorokban, illetve a setmatrix() függvénnyel, mint a QMatrix esetében: QTransform(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33 = 1.0) QTransform(qreal m11, qreal m12, qreal m21, qreal m22, qreal dx, qreal dy) QTransform(const QMatrix &matrix) void setmatrix(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33) Képek megjelenítése A QT-ben a QTransform a javasolt transzformációs mátrix. QPainter-rel végezve a transzformációkat: A QTransform és QMatrix osztályok leírják a transzformációkat, de a képek megjelenítését a QPainter osztály végzi. A kirajzolás során a QPainter objektumok is QMatrix-okat, illetve QTransform-ot használnak. A QPainter transzformációi megfelelnek a mátrixok transzformációinak. Pl. egy szöveget 45 fokos szögben elforgatva így írhatunk ki: void SimpleTransformation::paintEvent(QPaintEvent *) QPainter painter(this); painter.rotate(45); painter.setfont(qfont("helvetica", 24)); painter.setpen(qpen(qt::black, 1)); painter.drawtext(20, 10, "Ferde szöveg"); Ahogy a mátrixoknál több transzformációt is végezhetünk egyszerre egymás után meghívva az egyes transzformációs függvényeket. A QPainter transzformációkat pl. a következő egyszerű teszt programmal lehet kipróbálni (sp1,sp2 az egyes (Double) Spin Boxok nevei fentről lefele, a btn pedig a Tool Button):
6 Programozás A program GUI-ja main.cpp #include "pteszt.h" #include <QtWidgets/QApplication> int main(int argc, char *argv[]) QApplication a(argc, argv); Pteszt w; w.show(); return a.exec(); pteszt.h #ifndef PTESZT_H #define PTESZT_H #include <QtWidgets/QMainWindow> #include "ui_pteszt.h" class Pteszt : public QMainWindow Q_OBJECT public: Pteszt(QWidget *parent = 0); ~Pteszt(); protected: void paintevent(qpaintevent *event) Q_DECL_OVERRIDE; private: Ui::PtesztClass ui; private slots: void on_btn_clicked(); ; #endif // PTESZT_H
7 Programozás pteszt.cpp #include "pteszt.h" #include <QPainter> #include <qcolor.h> Pteszt::Pteszt(QWidget *parent) : QMainWindow(parent) ui.setupui(this); Pteszt::~Pteszt() void Pteszt::paintEvent(QPaintEvent *event) QPainter painter; painter.begin(this); qreal sx, sy; sx = ui.sp1->value(); sy = ui.sp2->value(); painter.translate(ui.sp4->value(), ui.sp5->value()); painter.shear(sx, sy); painter.rotate(ui.sp3->value()); painter.scale(ui.sp6->value(), ui.sp7->value()); painter.setpen(qpen(qt::blue, 3, Qt::DashLine)); painter.setbrush(qbrush(qt::red, Qt::BDiagPattern)); painter.drawrect(20, 20, 200, 100); painter.end(); void Pteszt::on_btn_clicked() update(); A Qimage transzformációi Ezekkel a transzformációkkal akár egy képet is rárajzolhatnánk a Canvas-ra a QPainter::drawImage() függvénnyel. Ennek azonban az a hátránya, hogy néhány 4 művelet OSX és/vagy Windows alatt nem működne, illetve az, hogy minden paintevent-ben újra el kellene végezni a transzformációkat a teljes képen, ami időigényes. Ehelyett kihasználjuk, hogy ugyanezeket a műveleteket a QImage is ismeri (sőt ezeknél többfélét is), ezért elő tud állítani magából egy másik, transzformált QImage-t, amit azután megjeleníthetünk. A következő paintevent-ben ezt a QImage-t már csak ki kell rajzolni, nem kell újra elvégezni a képen a transzformációt. Ebből következően két QImage-re van 4 általunk egyébként nem használt
8 Programozás szükségünk: az egyik az eredeti fájlból betöltött, a másik a transzformált. A transzformált QImage-t előállító függvények a következők 5 : Tükrözés függőlegesen, vagy vízszintesen mirrored(bool horizontal = false, bool vertical = true) Ez egy tükrözött képet ad vissza. Az eredeti kép nem változik meg. Átméretezés: QImage QImage::scaled(const QSize &téglalap, Qt::AspectRatioMode aspectratiomode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformmode = Qt::FastTransformation) Ez egy olyant átméretezett képet ad vissza, aminek a méretét a megadott téglalap adja meg az aspectratiomode (oldal arány) alapján: Itt a szaggatott vonal jelzi a téglalapot. A használt módszert a transformmode adja meg. Ha ez Qt::FastTransformation, akkor a simítás nélküli transzformáció történik, szemben a Qt::SmoothTransformation esetében, ami bilineáris szűrést használ. Egyik módszer sem igazán alkalmas nagy nagyításokra. Az eredeti kép most sem változik meg. Van olyan változata is, ahol a QSize helyett a szélességet és magasságot külön adhatjuk meg: QImage QImage::scaled(int width, int height, Qt::AspectRatioMode aspectratiomode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformmode = Qt::FastTransformation). Hasonló tarszformációkat végeznek a QImage scaledtowidth(int width, Qt::TransformationMode mode = Qt::FastTransformation) QImage scaledtoheighth(int height, Qt::TransformationMode mode = Qt::FastTransformation) 5 A szokásos kapcsolat a QMatrix és a QImage transzformációs függvényei között: pl. a scale() a mátrix transzformáció függvénye, a scaled() viszont egy scale()-d mátrixszal előállított másik képet ad.
9 Programozás függvények is. Ezek megtartják az oldalak arányát. Képek elforgatása, eltolása, nyírása, nagyítása és kicsinyítése mátrixokkal írható le. Pl egy balra 90 fokos elforgatás programja: void Canvas::rotateLeft90() QMatrix m; m = m.rotate(-90); _actimage = _actimage.transformed(m, Qt::SmoothTransformation); A kép ilyen transzformációját a QMatrix osztállyal adhatjuk meg és a transformed() függvényt kell meghívni hozzá: QImage QImage::transformed(const QMatrix &matrix, Qt::TransformationMode mode = Qt::FastTransformation) A koordinátarendszer átskálázását is leírhatjuk mátrixokkal. Ehhez ugyancsak a transformed() függvényt és egy nagyítási mátrixot használunk, amit a QMatrix QMatrix &QMatrix::scale(qreal sx, qreal sy) függvénye ad meg. A QTransform mátrixot csak a transformed() függvényben használjuk. Képformátumok és a QImage Ahogy már beszéltünk róla a QIamge a képformátumok közül az alábbiakat alapból ismeri: BMP Windows Bitmap Read/write GIF Graphic Interchange Format (optional) Read JPG Joint Photographic Experts Group Read/write JPEG Joint Photographic Experts Group Read/write PNG Portable Network Graphics Read/write PBM Portable Bitmap Read
10 Programozás PGM Portable Graymap Read PPM Portable Pixmap Read/write TIFF Tagged Image File Format Read/write XBM X11 Bitmap Read/write XPM X11 Pixmap Read/write Más képformátumok beolvasásához és írásához készíthetünk külső modulokat (plugin), amikkel kiegészíthetjük a QImage funkcionalítását. Az ismert képfájlokat a load(const QString &filename, const char *format = nullptr) függvénnyel fogjuk betölteni 6. Képeket betölthetünk fájlból, vagy a forrásprogramhoz tartozó resource-ból is. Az utóbbi esetben a fájl neve helyett a resource nevét kell használni, ami mindig ':/'-el kezdődik. Pl. a GrafikaQT-vel program esetében a resource-ban található 7 egyik kép neve :/GrafikaQTvel/ellipse.png. A QImage-ben tárolt kép pixelekből áll, tehát raszteres grafika. Minden pixelhez egy egész szám tartozik. Ennek a mérete a kép bit-mélységétől függ, amit a depth() függvénnyel kérdezhetünk le. Egy adott bit-mélységhez több formátum is tartozhat. A formátumot a format() függvénnyel kérhetjük le, ami egy QImage_Format enum értékeit adja vissza. A beolvasott képeket átszínezéseket kivéve - ugyanúgy manipuláljuk a formátumtól függően. A bit-mélység és az integer méretének kapcsolata: 1 bit/pixel (egyszínű monochrome kép) 1 bájtban 8 pixel adatai vékony- és vastag végű formátumban 8. Maguk a színek egy két elemű táblázatban vannak megadva. Ez egy indexelt formátum 8 bit/pixel 256 szürkeárnyalatos, vagy 256 elemű szín-táblázatot használó formátumok 6 Betölthetnénk a megfelelő konstruktorral is vagy a loadfromdata() függvénnyel, de ezeket nem fogjuk használni. 7 A jelenlegi QT verziók a resourc-okat a végrehajtható fájlba rakják bele, nem külön fájlként használjék. 8 Vastag végű (big endian) legnagyobb helyi értékű bit a bal oldali pixel, vékony végű (little endian) ez a jobb oldali pixel.
11 Programozás bit/pixel pixelenként 2 bájtot (_int16) elfoglaló, a három szín komponenst (R,G és B) 4-4-4, vagy biten megadó formátum. A nek van egy másik variációja, ahol még egy 4 bites alfa csatorna is meg van adva: Ez a formátum egy előszorzott ARGB formátum, ami azt jelenti, hogy az R,G és B komponensek már eleve meg vannak szorozva az alfa csatorna értékének 255-ödével. Az formátumnál a fennmaradó bit mindig bit/pixel pixelenként 4 bájtot (_int32) elfoglaló formátumok. A nem használt bitek mindig 0-k: előszorzott ARGB, RGB, előszorzott ARGB, és előszorzott ARGB, RGB 32 bit/pixel. pixelenként 4 bájtot (_int32) elfoglaló formátumok RGB, felső 8 bit 1-es, AARRGGBB, előszorzott ARGB formátum 9, bájt rendezett formátumok 10 : RRGGBBAA (big endian), AABBGGRR (little endian) és ezek előszorzott változata A Qimage alapértelmezett konstruktora egy NULL képet állít elő.null képet kaphatunk más, méreteket és formátumot is megadó konstruktorokkal is, ha a szükséges kép memória nem allokálható. Ezt az isnull() függvénnyel ellenőrizhetjük. Mi kizárólag nem indexelt RGB képekkel foglalkozunk, és a kép formátumának vagy QImage::Format_RGB32, vagy QImage::Format_RGB888 ot állítunk be. Amikor egy adott méretű QImage-t hozunk létre nem egy másik képből, akkor az egyes pixelek értéke határozatlan lesz. Azokat kirajzolás előtt mindig be kell állítani, pl. a fill() függvények valamelyikével A Kép lap programja A GUI módosítása A szokásos módon kapcsoljunk át a bal oldalon a Képek oldalra, azután adjunk hozzá a jobb oldali stckpages Stacked Widget-hez egy új, 5. lapot (currentindex = 4) és nevezzük át pnlimages re! Rakjunk rá erre a lapra egy widgetet, léptessük elő Canvas-szá, nevezzük át canvas3-á és a lap elrendezését állítsuk vízszintesre! Mentsük el a változtatásokat! 9 Előfordulhat, hogy RR, GG vagy BB > AA, ekkor a viselkedés nem definiált. 10 Ha a megfelelő bájt sorrendű gépen olvassuk be bájtonként, akkor ugyanazt a színt adja meg mindkettő.
12 Programozás A grafikaqtvel.cpp/.h módosítása Adjuk hozzá az 5. lapra kapcsolást az on_tbxmenu_currentchanged(int index) SLOT-hoz! Adjunk SLOT deklarációkat az összes widget lekezeléséhez grafikaqtvel.h header fájlhoz! Ezek a clicked() SIGNAL-ok a gombokhoz, a, textchanged(qstring) signal a beviteli mezőhöz, a currentindexchanged(int index) signal a lenyíló Combo Box-hoz és a valuechanged() signal a QDoubleSpinBox és QSlider objektumokhoz. A Beolvasás és a Megjelenítés gomb legyen alapból inaktív. A Beolvasás gombot akkor tegyük aktívvá, ha egy létező kép fájl neve van a beviteli mezőben és a fájl még nincs bent a memóriában, más esetekben legyen inaktív. Az ehhez tartozó feltételek tehát: a gomb aktív, ha - a beviteli mező szövegét kézzel átírtuk (és nem a böngészés (btnimagebrowse) gomb írta át) - a beviteli mezőben levő szöveg egy létező kép fájl neve - ez a név nem azonos a memóriában levő fájl nevével A Megjelenítés gomb akkor aktív, ha van kép a memóriában. Amikor a btnimagebrowse gombbal választottunk fájlt, akkor a képet azonnal olvassuk be a _loadedimage-be, függetlenül attól, hogy mi van a memóriában. A fentiekhez egyfelől szükségünk van a beolvasott fájl nevére. Adjunk hozzá egy QString _imagename; változót a GrafikaQTvel osztály privát részéhez. Másfelöl, amikor a beviteli mező szövegét átírja a böngészéssel megadott név a Beolvasás gomb inaktív kell, hogy legyen. Ehhez elég, ha az _imagename-et előbb állítjuk be, mint a beviteli mező szövegét Írjuk meg a btnimageread gombhoz tartozó SLOT-ot a fájl beolvasására, a btnimagebrowse gombhoz tartozó SLOT-ot a fájl böngészésére, és az edtimagefile bevitelő mezőhöz tartozót a szövegváltoztatás lekezelésére! A fájl beolvasó gomb csak akkor aktív, amikor érvényes fájl név van a beviteli mezőben. Először elmenti ezt, majd beolvastatja és megjelenítteti a képet a Canvas-szal.
13 Programozás void GrafikaQTvel::on_btnImageRead_clicked() _imagename = ui.edtimgfile->text(); // név elmentése if (ui.canvas3->readimage(_imagename)) // kép beolvasás és megjelenítése ui.btnimagedisplay->setenabled(true); else ui.btnimagedisplay->setenabled(false); A böngészéshez kiindulásként átmásolhatjuk a kódot a btnbrowse2_clicked() függvényből, csak a fájl típusokat kell átírni a kép típusokra 11. void GrafikaQTvel::on_btnImageBrowse_clicked() QString filename = QFileDialog::getOpenFileName(this, QString("Kép fájl megnyitása"), "./", QString("Kép fájlok (*.BMP,*.GIF,*.JPG,*.JPEG,*.PNG);;X11 kép fájlok (*.PBM,*.PGM, *.PPM, *.XBM,*.XPM)" )); if (!filename.isempty()) // volt létező fáj név ui.edtimgfile->settext(filename); Ezután az if be berakjuk a kódot a kép nevének letárolására és a kép betöltésére: if (!filename.isempty()) // volt létező fájl név _imagename = filename; // név elmentése on_btnimageread_clicked(); // kép beolvasás és megjelenítése ui.edtimgfile->settext(filename); // kép név a beviteli mezőbe Itt felhasználtuk a betöltő gomb SLOT függvényét, hogy ne kelljen a beolvasási kódot megismételni 12.. A beviteli mező programja ugyanaz, mint az edtfile_textchanged() volt kiegészítve a beolvasás gomb feltételes aktívvá tételével. A megjelenítés gombbal itt nem foglalkozunk: void GrafikaQTvel::on_edtimageFile_textChanged(QString s) bool benable =!s.isempty() && QFile::exists(s); ui.btnimagedisplay->setenabled(benable); 11 Egy kereskedelmi forgalomba kerülő programban minden kép típushoz csak egy bejegyzés tartozna, itt egyszerűsítettünk. 12 Attól még, hogy a gomb inaktív a SLOT függvénye programból használható.
14 Programozás A Canvas osztály módosítása Egészítsük ki tehát a Canvas osztályt képek kezelésére! A fentiek szerint két QImage-re van szükségünk. Adjunk hozzá két QImage-et, egyet (_loadimege) a betöltött kép tárolására, a másikat (_actimage) az aktuális megjelenítéshez a private részhez: QImage _loadedimage; // lemezről betöltött eredeti kép QImage _actimage; // aktuális kép
A jobboldalon a pnlright egy Stacked Widget Állítsuk be az első lapot és nevezzük el pnldraw-ra:
A Rajzolás lap A rajzolás lap elemi rajzolási lehetőségek bemutatására szolgál. A rajzolás a jobboldali pnlright widget egyik lapjára rakott widgetre történik. A pnlright egy több lapot tartalmazó widget
Részletesebbenbool _freehand = false; QPoint _lastpoint; // ebben a pontban volt az utolsó rajzolásnál az egérmutató
canvas.h #pragma once #include #include #include #include #include #include #include // terület kiválasztáshoz struct RajzParameterek
Részletesebbenif(_param.antialias) painter.setrenderhint(qpainter::antialiasing, true);
Elmosás (antialias) struct RajzParameterek int penwidth = 1; Qt::PenStyle penstyle = Qt::SolidLine; Qt::PenCapStyle pencap = Qt::FlatCap; Qt::PenJoinStyle penjoin = Qt::MiterJoin; Qt::BrushStyle brushstyle
RészletesebbenGrafikus 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észletesebbenSzá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észletesebbenElemi alkalmazások fejlesztése III.
Elemi alkalmazások fejlesztése III. Memóriajáték 1. Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2007 1 memorygame Játék közben 2 memorygame Kártyák kiválasztása
RészletesebbenElemi 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észletesebbenI. VEKTOROK, MÁTRIXOK
217/18 1 félév I VEKTOROK, MÁTRIXOK I1 I2 Vektorok 1 A síkon derékszögű koordinátarendszerben minden v vektornak van vízszintes és van függőleges koordinátája, ezeket sorrendben v 1 és v 2 jelöli A v síkbeli
RészletesebbenElemi alkalmazások fejlesztése III. A Qt assistant elindítása. Ajánlott ir odalom. A Qt assistant nyitó ablaka
Elemi alkalmazások fejlesztése III Ajánlott ir odalom Egy ablakos alkalmazás készítése I. C++ / Qt felhasználásával Qt dokumentáció online: www.trolltech.com lokális változat: Kdevelop help vagy /usr/share/doc...
RészletesebbenQT Grafika Az alap alkalmazás felhasználói felülete
QT Grafika Az alap alkalmazás felhasználói felülete Az alábbiakban létrehozzuk azt a GUI-t, amit a továbbiakban használni fogunk. Ennek során áttekintünk néhány hasznos GUI elemet és azok használatát.
RészletesebbenWidget-ü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észletesebben3D-s számítógépes geometria és alakzatrekonstrukció
3D-s számítógépes geometria és alakzatrekonstrukció Tesztkörnyezet I http://cg.iit.bme.hu/portal/node/312 https://portal.vik.bme.hu/kepzes/targyak/viiima01 Dr. Várady Tamás, Dr. Salvi Péter BME, Villamosmérnöki
RészletesebbenQt rajzolás munkafüzet. Elemi Alkalmazások fejlesztése 3.
Qt rajzolás munkafüzet Elemi Alkalmazások fejlesztése 3. 1. fejezet Impresszum Qt rajzolás munkafüzet (C)2006 Zimler Attila Tamás Visszajelzéseket szivesen fogadok. A munkafüzet
RészletesebbenTömörítés, csomagolás, kicsomagolás. Letöltve: lenartpeter.uw.hu
Tömörítés, csomagolás, kicsomagolás Letöltve: lenartpeter.uw.hu Tömörítők Tömörítők kialakulásának főbb okai: - kis tárkapacitás - hálózaton továbbítandó adatok mérete nagy Tömörítés: olyan folyamat, mely
RészletesebbenElemek a kiadványban. Tervez grafika számítógépen. A képek feldolgozásának fejl dése ICC. Kép. Szöveg. Grafika
Elemek a kiadványban Kép Tervez grafika számítógépen Szöveg Grafika A képek feldolgozásának fejl dése Fekete fehér fotók autotípiai rács Színes képek megjelenése nyomtatásban: CMYK színkivonatok készítése
RészletesebbenElemi alkalmazások fejlesztése III.
Elemi alkalmazások fejlesztése III. Bevezetés Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2007 1 A Qt assistant nyitó ablaka www.trolltech.com 2 Alkalmazás
Részletesebben3D-s számítógépes geometria és alakzatrekonstrukció
3D-s számítógépes geometria és alakzatrekonstrukció 3a. Tesztkörnyezet I http://cg.iit.bme.hu/portal/node/312 https://portal.vik.bme.hu/kepzes/targyak/viiima01 Dr. Várady Tamás, Salvi Péter BME, Villamosmérnöki
RészletesebbenQT 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észletesebbenProgramozás C++ -ban
Programozás C++ -ban 4. Bevezetés az osztályokba 4.1 Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több
RészletesebbenOpenGL és a mátrixok
OpenGL és a mátrixok Róth Gergő 2013. március 4. Róth Gergő 1/20 A rajzoláskor a videókártya minden csúcson végrehajt egy transzformációt. Mire jó? Kamera helyének beállítása Egy objektum több pozícióra
Részletesebben3D koordináta-rendszerek
3D koordináta-rendszerek z z y x y x y balkezes bal-sodrású x jobbkezes jobb-sodrású z 3D transzformációk - homogén koordináták (x, y, z) megadása homogén koordinátákkal: (x, y, z, 1) (x, y, z, w) = (x,
RészletesebbenAlgoritmusok raszteres grafikához
Algoritmusok raszteres grafikához Egyenes rajzolása Kör rajzolása Ellipszis rajzolása Algoritmusok raszteres grafikához Feladat: Grafikai primitíveket (pl. vonalat, síkidomot) ábrázolni kép-mátrixszal,
RészletesebbenMobil informatika gyakorlat. 2. óra: NFC a gyakorlatban
Mobil informatika gyakorlat 2. óra: NFC a gyakorlatban Mi az NFC? Near Field Communication Rövid hatótávolságú rádiófrekvenciás technológia (tipikusan 5-10 cm) 13,56 MHz frekvencia Az ISO/IEC 14443 szabvány
RészletesebbenElemi alkalmazások fejlesztése III
Elemi alkalmazások fejlesztése III Egy ablakos alkalmazás készítése I. C++ / Qt felhasználásával készítette: Szabóné Nacsa Rozália 1 Ajánlott irodalom Qt dokumentáció online: www.trolltech.com lokális
Részletesebben3. Osztályok II. Programozás II
3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt
RészletesebbenOOP #14 (referencia-elv)
OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet
RészletesebbenBevezetés a programozásba II 1. gyakorlat. A grafikus könyvtár használata, alakzatok rajzolása
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba II 1. gyakorlat A grafikus könyvtár használata, alakzatok rajzolása 2014.02.10. Giachetta Roberto groberto@inf.elte.hu
RészletesebbenInfobionika ROBOTIKA. X. Előadás. Robot manipulátorok II. Direkt és inverz kinematika. Készült a HEFOP P /1.0 projekt keretében
Infobionika ROBOTIKA X. Előadás Robot manipulátorok II. Direkt és inverz kinematika Készült a HEFOP-3.3.1-P.-2004-06-0018/1.0 projekt keretében Tartalom Direkt kinematikai probléma Denavit-Hartenberg konvenció
RészletesebbenProgramozás II gyakorlat. 4. Öröklődés
Programozás II gyakorlat 4. Öröklődés Feladat Egy játékfejlesztő cég olyan programot fejleszt, amely nyilvántartja az alkalmazottai adatait. Tároljuk minden személy: Nevét (legfeljebb 50 karakter) Születési
RészletesebbenInformáció megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter
Információ megjelenítés Számítógépes ábrázolás Dr. Iványi Péter Raszterizáció OpenGL Mely pixelek vannak a primitíven belül fragment generálása minden ilyen pixelre Attribútumok (pl., szín) hozzárendelése
RészletesebbenGPU Lab. 14. fejezet. OpenCL textúra használat. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc
14. fejezet OpenCL textúra használat Grafikus Processzorok Tudományos Célú Programozása Textúrák A textúrák 1, 2, vagy 3D-s tömbök kifejezetten szín információk tárolására Főbb különbségek a bufferekhez
RészletesebbenOrszágos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, Quantum GIS 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, Quantum GIS program alkalmazásával Útmutató 2010. május 1. BEVEZETÉS Az útmutató célja az Országos Területrendezési
RészletesebbenProgramozás C++ -ban 2007/4
Programozás C++ -ban 2007/4 1. Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több szempontból is hasznos
RészletesebbenLáthatósági kérdések
Láthatósági kérdések Láthatósági algoritmusok Adott térbeli objektum és adott nézőpont esetén el kell döntenünk, hogy mi látható az adott alakzatból a nézőpontból, vagy irányából nézve. Az algoritmusok
RészletesebbenProgramozási nyelvek 2. előadás
Programozási nyelvek 2. előadás Logo forgatás tétel Forgatás tétel Ha az ismétlendő rész T fok fordulatot végez és a kezdőhelyére visszatér, akkor az ismétlések által rajzolt ábrák egymás T fokkal elforgatottjai
RészletesebbenElemi alkalmazások fejlesztése III.
Elemi alkalmazások fejlesztése III. Egy ablakos alkalmazás készítése II. C++ / Qt / KDevelop felhasználásával készítette: Szabóné Nacsa Rozália lektorálta: Párniczky Krisztina 1 Fájlkezelés Olvasás 2 A
RészletesebbenTranszformációk. Grafikus játékok fejlesztése Szécsi László 2013.02.26. t05-transform
Transzformációk Grafikus játékok fejlesztése Szécsi László 2013.02.26. t05-transform Koordinátarendszerek: modelltér Koordinátarendszerek: világtér Koordinátarendszerek: kameratér up right z eye ahead
RészletesebbenObjektumok és osztályok. Az objektumorientált programozás alapjai. Rajzolás tollal, festés ecsettel. A koordinátarendszer
Objektumok és osztályok Az objektumorientált programozás alapjai Rajzolás tollal, festés ecsettel A koordinátarendszer A vektorgrafikában az egyes grafikus elemeket (pontokat, szakaszokat, köröket, stb.)
RészletesebbenPhotofiltre használata KAP képek javításához
Photofiltre használata KAP képek javításához A program innen letölthető angol nyelven: http://www.photofiltre-studio.com/pf7-en.htm A magyarosított verziót felbővítettem maszkokkal, keretekkel, kijelölési
RészletesebbenElemi alkalmazások fejlesztése III.
Elemi alkalmazások fejlesztése III. MDI alkalmazás II. (Számla) Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2007 1 Számla felépítése fejléc tábla 2 Az alkalmazás
RészletesebbenC programozási nyelv Pointerek, tömbök, pointer aritmetika
C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek
RészletesebbenBevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 10. gyakorlat C++: alprogramok deklarációja és paraméterátadása 2011.11.22. Giachetta Roberto groberto@inf.elte.hu
RészletesebbenProgramozás II. 2. Dr. Iványi Péter
Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c
RészletesebbenBevezetés a programozásba előadás: Öröklődés
Bevezetés a programozásba 2 5. előadás: Öröklődés emlékeztető Tagfüggvény struct koord { double x,y,r; void set(double ux, double uy) { x=ux; y=uy; r=sqrt(x*x+y*y); } Használat: koord k; k.set(4,5); Egységbezárás
RészletesebbenProgramozás 6. Dr. Iványi Péter
Programozás 6. Dr. Iványi Péter 1 Előfeldolgozás része Makrók A forrás kódban elvégzi a helyettesítéseket a fordító Csak egyszer végez helyettesítést Nem olyan makrók, mint a LISP vagy Scheme esetén Csak
RészletesebbenQLabel *label = new Qlabel("Hello Qt!",0);
#include #include int main(int argc,char **argv) QApplication app(argc,argv); QLabel *label = new Qlabel("Hello Qt!",0); app.setmainwidget(label); label->show(); return app.exec();
RészletesebbenAudio-video tartalom-előállítás 2. kis ZH tananyag (részlet) 2015/16 ősz
Audio-video tartalom-előállítás 2. kis ZH tananyag (részlet) 2015/16 ősz Disclaimer Feldolgozott témák: állóképek, vektorgrafikus képek/fontok, DVD Nagyon vázlatos, érdemes a leírt dolgoknak utánajárni!
RészletesebbenBME 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észletesebbenProgramozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE
Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK Sapientia EMTE 2015-16 1 Felülnézet 1 Feltételes fordítás #if, #else, #elif, #endif, #ifdef, #ifndef stb. Felülnézet 2 #include: hatására a preprocesszor
RészletesebbenPixel vs. Vektor. Pixelgrafikus: Vektorgrafikus:
Grafika Pixel vs. Vektor Pixelgrafikus: Pixelt (képpontot használ, ehhez tartozik színkód Inkább fotók Pl.: GIMP, PhotoShop, Paint Shop Pro, Paint Vektorgrafikus: Objektumokból építkezik, ezek tulajdonságát
RészletesebbenA Képszerkesztés témakör oktatása. Dr. Nyéki Lajos 2019
A Képszerkesztés témakör oktatása Dr. Nyéki Lajos 2019 ECDL / ICDL Using Image Editing Syllabus 2.0 This module sets out essential concepts and skills relating to the ability to understand the main concepts
RészletesebbenEgységes és objektumközpontú adatbázis-kezelés (2. rész)
Egységes és objektumközpontú adatbázis-kezelés (2. rész) A folytatásában a bemutatjuk, hogyan kezelhetünk Qt rendszer alatt SQL sormutatót, és készíthetünk grafikus felületet programoknak a Qt Designer
RészletesebbenGrafikus 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észletesebbenC++ programozási nyelv
C++ programozási nyelv Gyakorlat - 13. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. december A C++ programozási nyelv Soós Sándor 1/10 Tartalomjegyzék Objektumok
RészletesebbenMultimédiás adatbázisok
Multimédiás adatbázisok Multimédiás adatbázis kezelő Olyan adatbázis kezelő, mely támogatja multimédiás adatok (dokumentum, kép, hang, videó) tárolását, módosítását és visszakeresését Minimális elvárás
RészletesebbenRobotika. Kinematika. Magyar Attila
Robotika Kinematika Magyar Attila amagyar@almos.vein.hu Miről lesz szó? Bevezetés Merev test pozíciója és orientációja Rotáció Euler szögek Homogén transzformációk Direkt kinematika Nyílt kinematikai lánc
Részletesebben4. Öröklődés. Programozás II
4. Öröklődés Programozás II Mielőtt belevágunk Egy Tárgy típusú objektumokat tároló tömb i. elemében tároljunk el egy új tárgyat Rossz módszer: tomb[i].setnev( uj.getnev() ); tomb[i].setertek( uj.getertek()
RészletesebbenKépszerkesztés. Letölthető mintafeladatok gyakorláshoz: Minta teszt 1 Minta teszt 2. A modul célja
Képszerkesztés Letölthető mintafeladatok gyakorláshoz: Minta teszt 1 Minta teszt 2 A modul célja Az ECDL Képszerkesztés alapfokú követelményrendszerben (Syllabus 1.0) a vizsgázónak értenie kell a digitális
RészletesebbenINFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP-4.1.2-08/1/A-2009-0010
INFORMATIKA ÁGAZATI ALKALMAZÁSAI Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP-4.1.2-08/1/A-2009-0010 7. Digitális térképezés, georeferálás, vektorizálás Digitális térkép Fogalma Jellemzői Georeferálás
RészletesebbenProgramozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 8. előadás Visszatekintés A Windows Console alkalmazások egy karakteres képernyőt biztosítottak, ahol a kimenet a kiírt szöveg, míg a bemenet a billentyűzet volt.
RészletesebbenKépfeldolgozás. 1. el adás. A képfeldolgozás m veletei. Mechatronikai mérnök szak BME, 2008
Képfeldolgozás 1. el adás. A képfeldolgozás m veletei Mechatronikai mérnök szak BME, 2008 1 / 61 Alapfogalmak transzformációk Deníció Deníció Geometriai korrekciókra akkor van szükség, ha a képr l valódi
RészletesebbenAlkalmazások fejlesztése III. Qt 4 /C++ alapú grafikus alkalmazás Bevezetés I.
Tartalomjegyzék Alkalmazás készítés Qt osztályokkal...2 A qmake eszköz...2 Hello Qt (hello)...2 Objektumok közötti kommunikáció (quit)...3 Fordítás/futtatás...4 Grafikus felület létrehozása, vezérlők szinkronizálása
RészletesebbenC programozási nyelv
C programozási nyelv Előfeldolgozó utasítások Dr Schuster György 2011 május 3 Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 1 / 15 A fordítás menete Dr Schuster György
RészletesebbenProgramozá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észletesebbenMátrixok 2017 Mátrixok
2017 számtáblázatok" : számok rendezett halmaza, melyben a számok helye két paraméterrel van meghatározva. Például lineáris egyenletrendszer együtthatómátrixa 2 x 1 + 4 x 2 = 8 1 x 1 + 3 x 2 = 1 ( 2 4
RészletesebbenGrafikus Felhasználói Felületű (GUI) program készítése a QT Creatorral, illetve a Microsoft Visual Studio-val
Grafikus Felhasználói Felületű (GUI) program készítése a QT Creatorral, illetve a Microsoft Visual Studio-val A feladat A feladat egy kis számológép elkészítése. A számológép a következőképpen néz majd
Részletesebben1. 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észletesebbenProgramozás C++ -ban
8. Dinamikus objektumok Programozás C++ -ban Ahhoz hogy általános prolémákat is meg tudjunk oldani, szükség van arra, hogy dinamikusan hozhassunk létre vagy szüntethessünk meg objektumokat. A C programozási
RészletesebbenProgramozá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észletesebbenOsztályok. 4. gyakorlat
Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum
RészletesebbenMiután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:
Excel objektumok Az excelben az osztályokat úgynevezett class modulokként hozzuk létre. Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni: View-ba
RészletesebbenWord VI. Lábjegyzet. Ebben a részben megadhatjuk, hogy hol szerepeljen a lábjegyzet (oldal alján, szöveg alatt).
Word VI. Lábjegyzet A számozást minden oldalon vagy minden szakaszban újrakezdhetjük. Mutassunk a Beszúrás menü Hivatkozás pontjára, majd kattintsunk a Lábjegyzet parancsra. Ebben a részben megadhatjuk,
RészletesebbenMySql elindítása. Elemi alkalmazások fejlesztése IV. Feladat. Az alkalmazás adatbázisa
Elemi alkalmazások fejlesztése IV. C++/Qt adatbáziskezel ő alkalmazás készítése Kdevelop környezetben I. MySql elindítása [nacsa@localhost nacsa]$ su Password:jelszó [root@localhost nacsa]# /usr/bin/safe_mysqld
RészletesebbenElemi alkalmazások fejlesztése IV.
Elemi alkalmazások fejlesztése IV. C++/Qt adatbáziskezelő alkalmazás készítése Kdevelop környezetben I. Készítette: Szabóné Nacsa Rozália 1 MySql elindítása [nacsa@localhost nacsa]$ su Password:jelszó
RészletesebbenFeladat. Tervezés és implementálás
Tartalomjegyzék FELADAT...2 Elvárások...2 TERVEZÉS ÉS IMPLEMENTÁLÁS...2 Megjelenési terv...2 Grafikus felület készítése...3 Modulszerkezet...3 Osztály diagram...3 MillMain form...4 Vezérlő k elrendezése...4
RészletesebbenMintavé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#include <iostream> using namespace std; // struct macska is lehetne class macska { public: int kor; int suly; }; void main() { macska cirmi;
1. Készítsünk egy macska osztályt amely két információt tárol: a kor (int) és a súly (int). Mind a két tulajdonság legyen publikus. Próbáljuk ki az osztályt. Definiáljunk egy cirmi nevű macskát és adjuk
RészletesebbenOOP: 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észletesebbenJava és web programozás
Budapesti M szaki Egyetem 2015. 03. 18. 6. El adás Graka Java-ban Emlékezzünk kicsit vissza a tikz-re: \begin{tikzpicture \draw (0,0) node[draw,circle] (S) {s; \draw (3,2) node[draw,circle] (A) {a; \draw
RészletesebbenBevezeté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észletesebbenBevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok
Bevezetés a programozásba II 8. Előadás: Osztályok, objektumok, osztályszintű metódusok vektor.h #ifndef VEKTOR_H #define VEKTOR_H class Vektor { int meret, *mut; public: Vektor(int meret); int szamlal(int
RészletesebbenSzámítógépes grafika
Számítógépes grafika HEFOP 3.5.1 Korszerű felnőttképzési módszerek kifejlesztése és alkalmazása EMIR azonosító: HEFOP-3.5.1-K-2004-10-0001/2.0 Tananyagfejlesztő: Máté István Lektorálta: Brückler Tamás
RészletesebbenAlapvető beállítások elvégzése Normál nézet
Alapvető beállítások elvégzése Normál nézet A Normál nézet egy egyszerűsített oldalképet mutat. Ez a nézet a legalkalmasabb a szöveg beírására, szerkesztésére és az egyszerűbb formázásokra. Ebben a nézetben
RészletesebbenWebes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET)
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 4. előadás (ASP.NET) 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Nézetek kezelése Sok esetben
Részletesebben12. előadás. Egyenletrendszerek, mátrixok. Dr. Szörényi Miklós, Dr. Kallós Gábor
12. előadás Egyenletrendszerek, mátrixok Dr. Szörényi Miklós, Dr. Kallós Gábor 2015 2016 1 Tartalom Matematikai alapok Vektorok és mátrixok megadása Tömbkonstansok Lineáris műveletek Mátrixok szorzása
RészletesebbenOrszá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észletesebbenSzövegek C++ -ban, a string osztály
Szövegek C++ -ban, a string osztály A string osztály a Szabványos C++ könyvtár (Standard Template Library) része és bár az objektum-orientált programozásról, az osztályokról, csak később esik szó, a string
RészletesebbenElemi alkalmazások fejlesztése IV. Adatbázis-kezelő GUI alkalmazás készítése 3. Összetett tábla karbantartása
Elemi alkalmazások fejlesztése IV. Adatbázis-kezelő GUI alkalmazás készítése 3. Összetett tábla karbantartása Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/eaf4/ Qt 4 2007
RészletesebbenKivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat
Kivételkezelés, beágyazott osztályok Nyolcadik gyakorlat Kivételkezelés Nem minden hibát lehet fordítási időben megtalálni Korábban (pl. C-ben) a hibakezelést úgy oldották meg, hogy a függvény hibakódot
RészletesebbenObjektumelvű programozás
Objektum, osztály Objektumelvű programozás Az elemzés együttműködő objektumok rendszereként fogalmazza meg a feladatot. Objektum-központú elemzés A tervezés a feladat tárgyköreit egy-egy objektum felelősségévé
RészletesebbenJá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észletesebbenBME 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észletesebben6.1.1.2 Új prezentáció létrehozása az alapértelmezés szerinti sablon alapján.
6. modul Prezentáció A modul a prezentációkészítéshez szükséges ismereteket kéri számon. A sikeres vizsga követelményei: Tudni kell prezentációkat létrehozni és elmenteni különböző fájl formátumokban A
Részletesebbenopenbve objektumkészítés Leírás az objektumkészítéshez használható parancsokról
Leírás az openbve-vel kompatibilis objektumkészítéshez használható parancsokról 1. oldal openbve objektumkészítés Leírás az objektumkészítéshez használható parancsokról A leírás az openbve-hez készíthető
RészletesebbenHORVÁ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észletesebben1. Mátrixösszeadás és skalárral szorzás
1 Mátrixösszeadás és skalárral szorzás Mátrixok tömör jelölése T test Az M = a i j T n m azt az n sorból és m oszlopból álló mátrixot jelöli, amelyben az i-edik sor j-edik eleme a i j T Példák [ ] Ha M
RészletesebbenForm1 Form Size 400;400 Text Mozgó kör timer1 Timer Enabled True Interval 100
BME MOGI Gépészeti informatika 16. 1. feladat Írjon alkalmazást, melyben egy 4 pixel sugarú, pirosra kifestett kört egy másik körön mozgat! A mozgást időzítő vezérelje! Megoldási mód: Windows Forms alkalmazás
RészletesebbenKeresztmetszet másodrendű nyomatékainak meghatározása
BUDAPEST MŰSZAK ÉS GAZDASÁGTUDOMÁNY EGYETEM Keresztmetszet másodrendű nyomatékainak meghatározása Segédlet a Szilárdságtan c tárgy házi feladatához Készítette: Lehotzky Dávid Budapest, 205 február 28 ábra
RészletesebbenRaszter georeferálás QGIS-ben Összeállította: dr. Siki Zoltán verzióra aktualizálta: Jáky András
Raszter georeferálás QGIS-ben Összeállította: dr. Siki Zoltán 2.18.3. verzióra aktualizálta: Jáky András (jakyandras@gmail.com) Ez a leírás ahhoz nyújt segítséget, hogy szkennelt térképet vagy ortofotót
Részletesebben