Tervezőeszközök, fejlesztőeszközök használata Qt alapú alkalmazásoknál. Saját vezérlő használata tervezőben (worldclocks)
|
|
- Lili Kisné
- 5 évvel ezelőtt
- Látták:
Átírás
1 Tartalomjegyzék Tervezőeszközök, fejlesztőeszközök használata Qt alapú alkalmazásoknál...1 Saját vezérlő használata tervezőben (worldclocks)...1 DigitalClock osztály (módosítás)...2 MyForm osztály...3 Az alkalmazás főprogramja...3 Az alkalmazás projekt fájlja...4 Sok gombos vezérlő létrehozása (buttons1)...4 ButtonGroup osztály...5 Az alkalmazás főprogramja...7 Az alkalmazás projekt fájlja...7 Eseménykezelés futási időben létrehozott vezérlőknél (buttons2)...8 ButtonGroup osztály (kiegészítés)...8 Az alkalmazás főprogramja...9 Az alkalmazás projekt fájlja...9 Saját vezérlő, saját szignál (buttons3)...10 ButtonGroup osztály (kiegészítés)...11 MainForm osztály (kiegészítés)...13 Az alkalmazás főprogramja...14 Az alkalmazás projekt leíró fájlja...15 Gombcsoport felhasználói átméretezése (buttons4)...15 ConfigDialog osztály...16 MainForm osztály (kiegészítés)...17 Az alkalmazás főprogramja...18 Az alkalmazás projekt fájlja...18 Többnyelvűség biztosítása (Qt Linguist)...18 A munkafüzet programjai letölthetők a people.inf.elte.hu/nacsa/qt4/eaf3/projects/ címről. A munkafüzetben bemutatott programok készítésekor a Qt verziót használtam. Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu honlap: people.inf.elte.hu/nacsa Budapest, szeptember Tervezőeszközök, fejlesztőeszközök használata Qt alapú alkalmazásoknál Saját vezérlő használata tervezőben (worldclocks) Készítsünk egy olyan programot, amely mutatja a helyi időt a világ különböző pontjaira. 1. oldal
2 A korábban elkészített DigitalClock osztályt kiegészítjük egy új adattaggal (mtimezone), amely jelzi az adott DigitalClock példány időeltolódását a Greenwich Mean Time (GMT) időhöz képest, valamint az adattagot beállító függvénnyel (settimezone()). DigitalClock osztály (módosítás) worldclocks projekt: digitalclock.h (kiegészítés) class DigitalClock : public QLCDNumber Q_OBJECT public: DigitalClock(QWidget *parent = 0); void settimezone(int time) mtimezone = time; private slots: void showtime(); private: int mtimezone; ; A DigitalClock osztállyal definiált vezérlő használata Qt Creator ban ( Promote ) 1. Indítsa el a Qt Creatort 2. File/New/ 3. A felbukkanó NewForm ablakban válassza ki a Widget sablont 4. Create 5. Form kijelölése Property Editor objecname: MyForm 6. A QLCDNumber vezérlőt húzzá rá az ablakra. 7. Jelölje ki a vezérlőt, majd jobb kattintással hívja be a helyi menüt és válassza ki a Promote to Custom Widget menüpontot. 8. Adja meg a DigitalClock nevet. (Ezzel a technikával csak az ősosztály tulajdonságait tudja a Property ablakban beállítani. A későbbiekben majd megtanulunk egy olyan technikát is, ahol már a saját vezérlőnkre bevezetett tulajdonságokat is állítani lehet a Property ablakban. ) 9. Az előző pont alapján helyezze el a DigitalClock elemeket az ablakra. Típus Név Beállítások DigitalClock lcdbudapest Promote: QLCDNumber 2. oldal
3 Típus Név Beállítások DigitalClock lcdtokio Promote: QLCDNumber DigitalClock lcdlondon Promote: QLCDNumber DigitalClock lcdmoscow Promote: QLCDNumber DigitalClock lcdalaska Promote: QLCDNumber DigitalClock lcdnewzealand Promote: QLCDNumber 10. A Layout alkalmazásával rendezze el az ablakon az elemeket. 11. Mentse el a felületet myform.ui néven a display alkönyvtárba. MyFormosztály worldclocks projekt: myform.h #include "ui_myform.h" class MyForm : public QWidget, private Ui_MyForm Q_OBJECT public: MyForm(QWidget *parent = 0); ; worldclocks projekt: myform.cpp #include "myform.h" MyForm::MyForm(QWidget *parent) : QWidget(parent) setupui(this); lcdlondon >settimezone( 1); lcdtokio >settimezone(8); lcdmoscow >settimezone(2); lcdalaska >settimezone( 10); lcdnewzealand >settimezone(11); Az alkalmazás főprogramja worldclocks projekt: main.cpp #include <QApplication> 3. oldal
4 #include "myform.h" int main (int argc, char *argv[]) QApplication app(argc,argv); MyForm *form = new MyForm; form >show(); return app.exec(); Az alkalmazás projektfájlja digitalclock projekt: digitalclock.pro TEMPLATE = app TARGET = DEPENDPATH +=. INCLUDEPATH +=. # Input HEADERS += digitalclock.h myform.h FORMS += myform.ui SOURCES += digitalclock.cpp main.cpp myform.cpp Fordítsa le, majd futtassa a programot A program letölthet ő a people.inf.elte.hu/nacsa/qt4/eaf3/project/worldclocks címről. A worldclock példában az egyes városokhoz tartozó órát külön külön névvel láttuk el és az időzóna beállítása is egyedileg történt. Felmerül a kérdés, ha sok azonos vezérlővel dolgozunk nem lehetne e kényelmesebben/általánosabban kezelni azokat. A következő feladatban egy ilyen esetre adunk megoldást. Sok gombos vezérlő létrehozása (buttons1) Feladat: Készítsünk egy sok gombos vezérlőt úgy, hogy a gombok száma tervezéskor még nem ismert. (Sok gombos vezérlő futási időben történő elkészítése). Projekt neve legye: buttons1. 4. oldal
5 A projekt összeállításához a QtCreatort használjuk. A kész projekt a következő fájlokból áll: buttons1.pro, main.cpp, buttongroup.h, buttongroup.cpp 1. Indítsa el a Qt Creatort 2. Hozzon létre egy új, Qt4 GUI Application projektet. A projekt neve: buttons1 Class name: ButtonGroup, Base class: QWidget, Files: buttongroup.h, buttongroup.cpp, buttongroup.ui, main.cpp 3. A generált projektből törölje ki a buttongroup.h, buttongroup.cpp, buttongroup.ui fájlokat 4. Hozzuk létre a saját ButtonGroup osztályt. File/new/C++ Class Class name: ButtonGroup; Base class: Qwidget 5. A buttongroup.h, buttongroup.cpp fájl kódjait egészítsük ki az alábbiakban megadott kódok alapján. 6. Fordítás, futtatás ButtonGrouposztály buttons1 projekt: buttongroup.h #include <QWidget> #include <QList> class QPushButton; class QGridLayout; typedef QList<QPushButton*> ButtonList; //Gombok listájának típusa class ButtonGroup : public QWidget public: ButtonGroup(QWidget *parent = 0); private: void insertbuttons(int row, int col ); private: int mnumrows; int mnumcols; ButtonList buttonlist; //Gombok listája QGridLayout *buttonlayout; ; A gombokra mutató pintereket egy listában helyezzük el. Az osztály adatreprezentációjában azt is tároljuk, hogy ez a gombcsoport hány sorból és hány oszlopból áll. buttons1 projekt: buttongroup.cpp #include <QtGui/QGridLayout> #include <QtGui/QPushButton> #include <QtGui/QWidget> #include <QList> 5. oldal
6 #include "buttongroup.h" static const int NumRows=3; static const int NumCols=5; ButtonGroup::ButtonGroup(QWidget * parent):qwidget(parent),mnumrows(0),mnumcols(0) setwindowtitle("buttons1 projekt"); buttonlayout = new QGridLayout; setlayout(buttonlayout); insertbuttons(numrows,numcols); Beállítjuk az alkalmazás ablak fejléc címét. A gombok elhelyezkedésének kezelésére létrehozunk ag rácsos elrendezőt (QgridLayout) és jelezzük, hogy ezen osztály (űrlap) vezérlő elemeinek elrendezéséért ez az rácsos elrendező felel. void ButtonGroup::insertButtons(int row, int col ) mnumrows = row; mnumcols = col; QPushButton *button; for (int i = 0; i < row; i++) for (int j = 0; j< col; j++) button = new QPushButton( QString::number(i*col+j) + ". gomb",this ); //No destructor!!! button >setobjectname(qstring::number(i*col+j)); button >setsizepolicy( QSizePolicy( (QSizePolicy::Expanding),(QSizePolicy::Expanding))); buttonlayout >addwidget(button,i,j); //A gombokat regisztráljaz elrendezőben button >show(); buttonlist.append(button); //A gombot hozzávesszük a gombok listájához Beállítjuk az osztály sor és oszlop adattagjait. A new operátorral dinamikusan létrehozunk egy nyomógombot. Beállítjuk a nyomógomb tulajdonságait, majd megjelenítjük azt a felületen (show()). A gombra egy ideiglenes változó mutat (button), ezért mielőtt létrehoznánk a következő gombot ezt elhelyezzük a buttonlist adattagban. A szabad tárhelyen lefoglalt gombokat nem kell explicit módon felszabadítani, mert a MyForm megszűnésével annak gyerekei (ButtonGroup), a ButtonGroup megszűnésével annak gyerekei (gombok) törlődnek a szabad tárhelyről. Természetesen a szabad tárhelyen new operátorral elhelyezett, szülővel nem rendelkező, önálló objektumok felszabadításáról továbbra is nekünk kell gondoskodni. (destruktor). 6. oldal
7 Az alkalmazás főprogramja buttons1 projekt: main.cpp #include <QtGui/QApplication> #include "buttongroup.h" int main(int argc, char *argv[]) QApplication a(argc, argv); ButtonGroup w; w.show(); return a.exec(); Az alkalmazás projektfájlja buttons1 projekt: buttons1.pro TARGET = buttons1 TEMPLATE = app SOURCES += main.cpp \ buttongroup.cpp HEADERS += buttongroup.h FORMS += A program letölthet ő a people.inf.elte.hu/nacsa/qt4/eaf3/project/buttons1 címről. 7. oldal
8 Eseménykezelés futási időben létrehozott vezérlőknél (buttons2) Feladat: Az előzőekben létrehozott sok gombos vezérlő valamely gombjára kettintva egy üzenet ablakban jelezzük, hogy a gomb hányadik sorban és hányadik oszlopban található. Projekt neve: buttons2. Kiinduló projekt: buttons1. Kattintásra megjelenik, hová kattintottunk. Egészítsük ki a ButtonGroup osztályt az alábbiak szerint. ButtonGrouposztály (kiegészítés) buttons2 projekt: buttongroup.h... class ButtonGroup : public QWidget Q_OBJECT // FONTOS!!!!!... private slots: void on_button_clicked();... ; A Qt grafikus osztályaiban lehetőség van saját szignálok (üzenetek) és slotok (üzenet kezeleők) megadására. Definiáljuk az on_button_clicked() eseménykezelő függvényt. Ha az osztály tartalmaz saját szignálokat vagy szlotokat, akkor a Q_OBJECT makrót feltétlenül meg kell adni. Ennek hatására kerül be az a kód a programunkba, amely futási időben kezelni tidja ezeket a különleges függvényeket. Ha elmulasztjuk ezt a makrót akkor bár megadtuk a függvényt a fordító azt jelzi, hogy ez a függvény nem definiált. buttons2 projekt: buttongroup.cpp #include <QMessageBox> void ButtonGroup::insertButtons(int row, int col ) 8. oldal
9 mnumrows = row; mnumcols = col; QPushButton *button; for (int i = 0; i < row; i++) for (int j = 0; j< col; j++) button = new QPushButton( QString::number(i*col+j) + ". gomb",this ); //No destructor!!!... connect(button, SIGNAL(clicked()), this, SLOT(on_button_clicked())); A QObject osztály connect() függvényében kötjük össze az eseményt (SIGNAL) és az arra reagáló eseménykezelő föggvényt (SLOT). void ButtonGroup::on_button_clicked() int i = ((QPushButton*) sender()) >objectname().toint(); int row = i/mnumcols; int col = i%mnumcols; QMessageBox::information(this, trutf8("kattintás:"), QString("sor: %1, oszlop: %2 ").arg(row+1).arg(col+1)); Ez a függvény akkor kapja meg a vezérlést, amikor egy gombra rákattintottunk. A sender() függvény visszatérési értéke egy QObject típusú, az üzenetküldőre (esemény forrásobjektuma) mutató pointer. Tudjuk azt, hogy ez az Object jelen esetben egy gomb, így típuskényszerítéssel lekérdezhetjük a gomb tulajdonságait. A gombot azonosító értéket az objektum neve tartalmazza. A QMessageBox a Qt előregyártott osztálya. Ne feledkezzen meg ezt beilleszteni az alkalmazásba (#include <QMessageBox>). Érdekesség, hogy Qt4 ben nem a header fájlt kell megadni, hanem a használni kívánt osztály nevét. Az alkalmazás főprogramja buttons2 projekt: main.cpp Lásd buttons1 projekt. Az alkalmazás projektfájlja buttons2 projekt: buttons1.pro Lásd buttons1 projekt. Fordítsa és futtassa a programot. A program letölthet ő a people.inf.elte.hu/nacsa/qt4/eaf3/project/buttons2 címről. 9. oldal
10 Saját vezérlő, saját szignál (buttons3) Feladat: Helyezzük el az előzőekben létrehozott sok gombos vezérlőt egy űrlapra. Legyen a sok gombos vezérlőnek egy saját üzenete, amellyel átadja, hogy a gombjai közül mely sorban és oszlopban helyezkedik el az a gomb, amelyre rákattintottak. Kattintásra az űrlapon frissüljön a sor és oszlop érték. A program futását a Vége gombra kattintva fejezzük be. Projekt neve: buttons3. Kiinduló projekt: buttons2. A feladatot a QtCreatorral oldjuk meg. 1. Indítsa el a QtCreatort, majd töltse be az előző projektet. 2. Hozzon létre egy űrlapot: File/new/Qt Designer Form Class OK Widget Class name: MainForm More Embedding of the UI class: Multiple inheritance Next/Finish 3. Válassza ki a mainform.ui felület definiáló fájlt 4. Készítse el a grafikus felületet! 10. oldal
11 Típus Név Beállítások QLcdNumber lcdrow QLcdNumber lcdcol ButtonGroup buttongroup Promote: ButtonGroup QPushButton exitbutton Text: Vége QWidget MainForm Text: buttons3 projekt QLabel label1 Text: Sor: QLabel label2 Text: Oszlop: Egészítse ki a projekt fájljait az alábbiak szerint! ButtonGrouposztály (kiegészítés) buttons3 projekt: buttongroup.h class ButtonGroup : public QWidget Q_OBJECT public: ButtonGroup(QWidget *parent = 0); public: void newbuttongroup(int row, int col); private: 11. oldal
12 void insertbuttons(int row, int col ); void removebuttons(); private: int mnumrows; int mnumcols; ButtonList buttonlist; QGridLayout *buttonlayout; private slots: void on_button_clicked(); signals: void buttongroup_clicked(int row, int col); ; A gombcsoport vezérlőt már a tervzővel is feltehetjük az űrlapra, de ez még gombokat nem tartalmaz, hiszen azok szána futási időben derül ki. A gombok futáskori megadására bevezetjük a newbuttongroup(int row, int col) publikus függvényt. A függvény hívásakor adjuk meg a gombok számát. Ha többször egymás után meghívnánk ezt a függvényt, akkor a gombok elszaporodnának. Erre két megoldás is kínálkozik. Az egyik megoldás az lenne, hogy erre az osztályra alkalmazzuk a singleton pattern tervezési mintát, azaz, ha a lista (buttonlist) nem üres, akkor a newbuttongroup(int row, int col) ismételt meghívásakor nem csinálnánk semmit. A másik megoldás (mi ezt választotttuk), hogy ha esetleg már voltak gombok a gombcsoportban, akkor azokat onnan kivesszük. (newbuttongroup(int row, int col)). A ButtonGroup osztályt üzenetet (signal) is küld a külvilág felé, amikor rákattintanak valamely gombjára. Az űrlap más objektumai dönthetnek úgy, hogy rákapcsolódnak erre az üzenetre és használják az üzenettel együtt érkező adatot. buttons3 projekt: buttongroup.cpp Az üzenet küldés az emit kiadásával történik, melyben megadjuk a küldendő üzenetet és annak paramétereit. void ButtonGroup::on_button_clicked() int i = ((QPushButton*) sender()) >objectname().toint(); int row = i/mnumcols; int col = i%mnumcols; //QMessageBox::information(this, trutf8("kattintás:"), QString("sor: %1, oszlop: %2 ").arg(row+1).arg(col+1)); emit buttongroup_clicked(row,col); Új gombcsoport létrehozásakor a korábbi gombokat le kell szedni. Ezt azzal érjük el, hogy a lista elemein haladva rendre töröljük (delet) azokat. A QList::takeFirst() metódusa visszaadja a lista első elemére mutató 12. oldal
13 pointert, melyre kiadjuk a delete parancsot. Ezt mindaddig végezzük, amíg van elem a listában. void ButtonGroup::newButtonGroup(int row, int col) removebuttons(); insertbuttons(row, col); void ButtonGroup::removeButtons( ) while (!buttonlist.isempty()) delete buttonlist.takefirst(); MainFormosztály (kiegészítés) buttons3 projekt: mainform.h A tervezővel elkészített felületet ki kell egészíteni az alkalmazás speciális szolgáltatásaival. Két eseményt szeretnénk kezelni. Az egyik, amikor a felhasználó a Vége gombra kattint, a másik, ha a gombcsoport valamely gombjára. #include "ui_mainform.h" class MainForm : public QWidget, private Ui::MainForm Q_OBJECT Q_DISABLE_COPY(MainForm) public: explicit MainForm(QWidget *parent = 0); private slots: void on_exitbutton_clicked(); void my_on_buttongroup_clicked(int row, int col); ; buttons3 projekt: mainform.cpp #include "mainform.h" static const int NumRows=5; static const int NumCols=5; MainForm::MainForm(QWidget *parent) : QWidget(parent) setupui(this); buttongroup >newbuttongroup(numrows,numcols); connect(buttongroup, SIGNAL(buttonGroup_clicked(int,int)), this, SLOT(my_on_buttonGroup_clicked(int,int))); 13. oldal
14 Ha betartjuk a slotok elnevezésére vonatkozó névkonvenciókat, akkor a tervezőben megadott vezérlők szignálja a névkonvenciónak megfelelő slottal automatikusan össze van kapcsolva, így a connect(exitbutton, SIGNAL(clicked(int,int)), this, SLOT(on_exitButton_clicked(int,int))); parancsot nem kell megadnunk. A gombcsoport esetében más a helyzet. Ott a gomb csoport saját szignálját össze kell kötni az őt kezelő szlottal. connect(buttongroup, SIGNAL(buttonGroup_clicked(int,int)), this, SLOT(my_on_buttonGroup_clicked(int,int))); Ha élni akarunk az automatikus összekapcsolással, akkor arra is ügyelnünk kell, hogy az eseménykezelőnek ne adjunk olyan nevet, amely ütközhet az automatikus névvel. ( my_on_buttongroup_clicked()). Ez az eseménykezelő akkor kapja meg a vezérlést, amikor az ExitButton gombra kattintunk. A függvény az alkalmazás példányunkra mutató statikus (osztály szintű) qapp változó quit() metódusával zárja be az alkalmazást. A Qt érdekessége, hogy ez a mutató ténylegesen az alkalmazásunk példányára mutat, így ezen keresztül az alkalmazás számos tulajdonságát megszerezhetjük. void MainForm::on_exitButton_clicked() qapp >quit(); Ha a gombcsoport egy gombjára kattintunk, akkor az űrlap osztályban frissíteni kell megjelenített a sor és oszlop értékeket. Tekintettel arra, hogy az üzenettel együtt érkezik ez a két érték, így a függvényben az egyetlen feladat a paraméterül kapott két érték megjelenítése. void MainForm::my_on_buttonGroup_clicked(int row, int col) lcdrow >display(row+1); lcdcol >display(col+1); Az alkalmazás főprogramja buttons 3 projekt: main.cpp #include <QtGui/QApplication> #include "mainform.h" int main(int argc, char *argv[]) QApplication a(argc, argv); MainForm w; w.show(); return a.exec(); 14. oldal
15 Az alkalmazás projektleíró fájlja buttons3 projekt: buttons3.pro TARGET = buttons3 TEMPLATE = app SOURCES += main.cpp \ buttongroup.cpp \ mainform.cpp HEADERS += buttongroup.h \ mainform.h FORMS += mainform.ui Fordítsa és futtassa a programot. A program letölthet ő a people.inf.elte.hu/nacsa/qt4/eaf3/project/buttons3 címről. Gombcsoport felhasználói átméretezése (buttons4) Az előz ő példában futási idő ben, az objektum példányosításakor határoztuk meg, hogy hány gombot szeretnénk elhelyezni a felületen. Felmerülhet az az igény, hogy a program futása során többször is átméretezhessük a gombcsoportot. Feladat: Helyezzünk el a felületen egy Új méret gombot. A gombra kattintva egy párbeszédablakban megadhatjuk a gombcsoport új méretét. A felületen ezután az új méretezésnek megfelelően jelenjen meg a gombcsoport. Projekt neve: buttons4. Kiinduló projekt: buttons3. MainForm osztály ConfigDialog osztály 15. oldal
16 A feladatot a QtCreatorral oldjuk meg. 1. Indítsa el a QtCreatort, majd töltse be az előző projektet. 2. Hozzon létre egyúj dialógus ablakot: File/New/Qt Designer Form Class OK Dialog without Buttons Class name: ConfigDialog 3. Válassza ki a configdialog.ui felület definiáló fájlt 4. Készítse el a grafikus felületet! Típus Név Beállítások QLineEdit editrow QLineEdit editcol QPushButton okbutton Text: Rendben QPushButton cancelbutton Text: Mégse QLabel labelrow Text: Sorok száma: QLabel labelcol Text: Oszlopok száma: ConfigDialog osztály buttons4 projekt: configdialog.h #include <QDialog> #include "ui_configdialog.h" 16. oldal
17 class ConfigDialog : public QDialog, public Ui::ConfigDialog Q_OBJECT Q_DISABLE_COPY(ConfigDialog) public: explicit ConfigDialog(QWidget *parent = 0); public slots: void on_okbutton_clicked(); void on_cancelbutton_clicked(); ; buttons4 projekt: configdialog.cpp #include "configdialog.h" ConfigDialog::ConfigDialog(QWidget *parent) : QDialog(parent) setupui(this); void ConfigDialog::on_okButton_clicked() accept(); void ConfigDialog::on_cancelButton_clicked() reject(); MainFormosztály (kiegészítés) buttons4 projekt: mainform.h class MainForm : public QWidget, private Ui::MainForm Q_OBJECT Q_DISABLE_COPY(MainForm) public: explicit MainForm(QWidget *parent = 0); private slots: void on_exitbutton_clicked(); void my_on_buttongroup_clicked(int row, int col); ; void on_configbutton_clicked(); 17. oldal
18 buttons4 projekt: mainform.cpp void MainForm::on_configButton_clicked() int row, col; ConfigDialog dialog(this); if(dialog.exec()) row = dialog.rowedit >text().toint(); col = dialog.coledit >text().toint(); buttongroup >newbuttongroup(row,col); Az alkalmazás főprogramja buttons 4 projekt: main.cpp Lásd buttons3 projekt. Az alkalmazás projekt fájlja buttons4 projekt: buttons4.pro TARGET = buttons4 TEMPLATE = app SOURCES += main.cpp \ buttongroup.cpp \ mainform.cpp \ configdialog.cpp HEADERS += buttongroup.h \ mainform.h \ configdialog.h FORMS += mainform.ui \ configdialog.ui Többnyelvűség biztosítása (Qt Linguist) Egészítsük ki a decimális hexadecimális konvertáló programunkat oly módon, hogy a felületen magyar szöveg jelenjen meg. Ehhez a Qt Linguist programot fogjuk használni. Ahhoz, hogy az alkalmazásunk többféle nyelven is futtatható legyen Önnek az alábbiakat kell tennie: 1. Másolja át a convert projekt alábbi fájljait a convert_tr alkönyvtárba: (convertdialog.ui, convertdialog.h, convertdialog.cpp, main.cpp) 2. Készítse el a projekt leíró fájlt: qmake project 3. Módosítsa a projekt leíró fájlt (convert.pro módosítása) TEMPLATE = app TARGET = DEPENDPATH +=. INCLUDEPATH +=. 18. oldal
19 # Input HEADERS += convertdialog.h FORMS += convertdialog.ui SOURCES += convertdialog.cpp main.cpp TRANSLATIONS += convert_hu.ts 1. Gyűjtse ki a grafikus szöveges részeket (string) a projekt programjaiból: lupdate verbose convert_tr.pro Ez a program azokat a szövegrészeket gyűjti ki, melyeket a QString::fromUtf8("szöveg") alakban adtunk meg, azaz amelyeket a QString::fromUtf8 függvénnyel becsomagoltunk. 4. Készítse el a szótárat a Qt Linguis program segítségével. Indítsa el a programot, töltse be a convert_hu.ts fájlt és adja meg az angol szavak magyar megfelelőjét. 5. Készítse el az adott nyelv bináris fájlját: lrelease verbose convert_tr.pro 6. Futási időben (main() függvényben) beállíthatja a kívánt nyelvet. Módosítsa a main() függvényt az alábbiak szerint: #include <QApplication> #include <QTranslator> #include "convertdialog.h" int main (int argc, char *argv[]) QApplication app(argc,argv); QTranslator translator; translator.load("convert_hu"); app.installtranslator(&translator); ConvertDialog *dialog = new ConvertDialog; dialog >show(); return app.exec(); A program letölthető a people.inf.elte.hu/nacsa/qt4/eaf3/projects/convert_tr címről. 19. oldal
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é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é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észletesebbenBudapest, 2007. március. ELTE Informatikai Kar
Tartalomjegyzék Alkalmazás készítés Qt osztályokkal...2 A qmake eszköz...2 Hello Qt (hello)...2 A projekt elkészítésének lépései...3 Objektumok közötti kommunikáció (quit)...3 A projekt elkészítésének
RészletesebbenElemi alkalmazások fejlesztése 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 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é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észletesebbenAlkalmazások fejlesztése III. Qt 4 /C++ alapú grafikus alkalmazás - Memóriajáték 1/2
Tartalomjegyzék Memóriajáték...2 A memóriajáték osztálydiagramja...2 A projektben használt segéd függvények (Utils)...3 utils.h...3 utils.cpp...3 CardButton osztály...4 cardbutton.h...4 cardbutton.cpp...5
Ré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é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é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é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é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észletesebbenEseménykezelés. Aszinkron kommunikáció
Eseménykezelés Aszinkron kommunikáció Feladat Készítsünk egy stoppert, amely másodpercenként jelzi a múló időt. Ez a folyamat egy adott jelzés hatására induljon el; ugyanezen jelzés ismétléseinek hatására
Ré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 EAF3 Qt4 Bevezetés (mod01) 1 A Qt assistant nyitó ablaka www.trolltech.com
RészletesebbenElemi alkalmazások fejlesztése III
Elemi alkalmazások fejlesztése III Egyablakos alkalmazás készítése I. Qt/X11 felhasználásával Kdevelop környezetben készítette: Steingart Ferenc Szabóné Nacsa Rozália Ajánlott irodalom Qt dokumentáció
RészletesebbenESEMÉNY VEZÉRELT ALKALMAZÁSOK FEJLESZTÉSE I. Bevezetés. Készítette: Gregorics Tibor
ESEMÉNY VEZÉRELT ALKALMAZÁSOK FEJLESZTÉSE I. Bevezetés Készítette: Gregorics Tibor Előfeltétel: OAF (EAF2) Kötelező házi feladatok: 4 darab feladat max. 5-5 pontért Feltételek 2 hét késés: legfeljebb 3
RészletesebbenAdabáziselérés ODBC-n keresztül utasításokkal C#-ban
Adabáziselérés ODBC-n keresztül utasításokkal C#-ban 1. Előkészítés Access adatbázis lemásolása, ODBC DSN létrehozása Másoljuk le az alábbiakat: Mit Honnan Hova list.mdb p:\johanyák Csaba\Vizualis programozas\data\
Ré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észletesebbenEseményvezérelt alkalmazások
Szabóné Nacsa Rozália nacsa@inf.elte.hu Eseményvezérelt alkalmazások A Windows alkalmazások eseményvezérelt alkalmazások Esemény: egér kattintás billenty leütés stb. Üzenetkezelés Operációs rendszer kódja
RészletesebbenProgramozási technológia
Programozási technológia Swing GUI készítése NetBeans IDE segítségével Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Bevezető Eddig a grafikus felhasználói felületet kódból hoztuk létre kézzel. A mi
RészletesebbenEseményvezérelt alkalmazások fejlesztése I 3. előadás. Dinamikus felületű alkalmazások. Giachetta Roberto
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 3. előadás Dinamikus felületű alkalmazások Giachetta Roberto http://people.inf.elte.hu/groberto A felhasználói
RészletesebbenDinamikus felületű alkalmazások. Stílusok, időzítő, képek
Dinamikus felületű alkalmazások Stílusok, időzítő, képek Felhasználói felület fajtái Az alkalmazásaink grafikus felülete alapvetően kétféle lehet: statikus: az alkalmazás felületén lévő vezérlőket induláskor
RészletesebbenSwing GUI készítése NetBeans IDE segítségével
Programozási Swing e NetBeans IDE segítségével Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 2 2 Eddig a grafikus felhasználói felületet kódból hoztuk létre kézzel. A mi feladatunk volt az
Ré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észletesebbenJohanyák Zsolt Csaba: Ugráló gomb oktatási segédlet Copyright 2008 Johanyák Zsolt Csaba
Ugráló gomb Készítsünk egy egyszerű játékprogramot, ami egy mozgó nyomógombot tartalmaz. A nyomógomb beállított ideig marad egy helyben, majd az ablakon számára elhatárolt terület (panel) egy véletlenszerűen
Részletesebben3. Beadandó feladat dokumentáció
3. Beadandó feladat dokumentáció Készítette: Giachetta Roberto E-mail: groberto@inf.elte.hu Feladat: Készítsünk programot a közismert Tic-Tac-Toe játékra. Ebben a játékban a játékosok egy -as játékmezőn
RészletesebbenA Java nyelv. Dialógus ablakok. Elek Tibor
A Java nyelv Dialógus ablakok Elek Tibor Dialógus ablakok Szerepe: felbukkanó ablak (üzenet, input) Felépítése, használata majdnem ua., mint JFrame Tulajdonos: lehet tulajdonosa, amellyel együtt ikonizálódik,
Részletesebben1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?
1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben? 3. Ismertesse a névtér fogalmát! 4. Mit értünk a "változó hatóköre"
Ré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é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é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észletesebben2. Beadandó feladat dokumentáció
2. Beadandó feladat dokumentáció Készítette: Giachetta Roberto E-mail: groberto@inf.elte.hu Feladat: Készítsünk programot a következő memóriajátékhoz. A játéktáblán mező foglal helyet, amelyek különböző
RészletesebbenElemi alkalmazások fejlesztése IV. Adatbáziskezel alkalmazás készítése QtDesignerben. Készítette: Szabóné Nacsa Rozália
Elemi alkalmazások fejlesztése IV. Adatbáziskezel ő alkalmazás készítése QtDesignerben Készítette: Szabóné Nacsa Rozália 1 Származtatásos modulszerkezet Q t form.ui U formbase.h Örökl ő dés form.h formbase.cpp
RészletesebbenA gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.
Vizuális programozás 1. A gyakorlat célja A gyakorlat célja a Könyvtár alkalmazás folytatása az előző gyakorlaton elkészített grafikus felület felhasználásával. Elsőként lemásoljuk az előző gyakorlat eredményeként
RészletesebbenJava Programozás 5. Gy: Java alapok. Adatkezelő 1.rész
Java Programozás 5. Gy: Java alapok Adatkezelő 1.rész 27/1 B ITv: MAN 2018.04.13 Feladat Egy nagyon hosszú feladatmegoldásba kezdünk bele: létrehozunk egy adatkezelő programot, sok-sok extrával: 27/2 A
Részletesebben3D-s számítógépes geometria és alakzatrekonstrukció
3D-s számítógépes geometria és alakzatrekonstrukció Tesztkörnyezet I http://cg.iit.bme.hu/portal/node/312 https://portal.vik.bme.hu/kepzes/targyak/viiima01 Dr. Várady Tamás, Dr. Salvi Péter BME, Villamosmérnöki
RészletesebbenElemi alkalmazások fejlesztése I.
Steingart Ferenc el adása alapján készítette: Szabóné Nacsa Rozália Integrált fejleszt környezet Linux MS Win* www.kdevelop.org www.bloodshed.net Bevezetés 1 A kdevelop f ablaka Editor és böngész Projektszerkezet
RészletesebbenAlkalmazá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észletesebbenProgramozás II. 3. gyakorlat Objektum Orientáltság C++-ban
Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Tartalom OOP ismétlés Osztályok létrehozása Adattagok láthatóságai, elnevezési ajánlások Konstruktor, destruktor this pointer Statikus és dinamikus
RészletesebbenAlkalmazá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észletesebbenKét csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később).
Grafikus felhasználói felület Két csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később). Mi hogyan használjuk? awt: eseménykezelés,
Ré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észletesebben2. Beadandó feladat dokumentáció
2. Beadandó feladat dokumentáció Készítette: Giachetta Roberto E-mail: groberto@inf.elte.hu Feladat: Készítsünk programot a következő memóriajátékhoz. A játéktáblán mező foglal helyet, amelyek különböző
RészletesebbenSorosítás (szerializáció) és helyreállítás. 1. Bináris sorosítás és helyreállítás. 1.1. Szükséges névterek. 1.2. Attribútumok. 1.3.
Sorosítás (szerializáció) és helyreállítás Cél: a memóriában tárolt adatok egyszerű lemezre mentése és visszatöltése. A sorosítás során létrehozunk egy állományt és egy sorosítást kezelő objektumot. Ez
RészletesebbenEseménykezelés. Aszinkron kommunikáció
Eseménykezelés Aszinkron kommunikáció Feladat Készítsünk egy stoppert, amely másodpercenként jelzi a múló időt. Ez a folyamat egy adott jelzés hatására induljon el; ugyanezen jelzés ismétléseinek hatására
RészletesebbenJohanyák Zsolt Csaba: Grafikus felület programozása. http://www.johanyak.hu e-mail: johanyak.csaba@gamf.kefo.hu Copyright 2008 Johanyák Zsolt Csaba
Johanyák Zsolt Csaba: Grafikus felület programozása http://www.johanyak.hu e-mail: johanyak.csaba@gamf.kefo.hu Copyright 2008 Johanyák Zsolt Csaba 1. Gyümölcsárazó automata Készítsünk egy gyümölcsárazó
RészletesebbenEgyszerűbb a Google keresőbe beírni a Sharepoint Designer 2007 letöltés kulcsszavakat és az első találat erre a címre mutat.
A feladat megoldásához a Sharepoint Designer 2007 programot használjuk, mely ingyenesen letölthető a Microsoft weboldaláról. Az érettségi aktuális szoftverlistája alapján az Expression Web 2, az Expression
RészletesebbenSzámítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás
Számítástechnika II. BMEKOKAA153 5. Előadás Dr. Bécsi Tamás Kivételkezelés try Azon utasítások kerülnek ide, melyek hibát okozhatnak, kivételkezelést igényelnek catch( típus [név]) Adott kivételtípus esetén
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észletesebbenProgramozási technológia
Programozási technológia Grafikus felhasználói felület Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Grafikus felhasználói felület Két csomag elemeiből lehet a felületet elkészíteni awt,,heavy weight"
RészletesebbenGrafikus felhasználói felület (GUI) létrehozása A GUI jelentése Egy egyszerű GUI mintaalkalmazás létrehozása
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 0. MATLAB alapismeretek IX. A GUI jelentése Egy egyszerű GUI mintaalkalmazás létrehozása Alkalmazott Informatikai Intézeti
Ré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észletesebbenElemi 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észletesebbenProgramozás II. 4. Dr. Iványi Péter
Programozás II. 4. Dr. Iványi Péter 1 inline függvények Bizonyos függvények annyira rövidek, hogy nem biztos hogy a fordító függvényhívást fordít, hanem inkább az adott sorba beilleszti a kódot. #include
Részletesebben500. AA Megoldó Alfréd AA 500.
Programozás alapjai 2. NZH 2010.05.13. gyakorlat: / Hiány:0 ZH:0 MEGOLD IB.027/51. Hftest: 0 Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti, hogy minden
RészletesebbenGrafikus felhasználói felületek. Dr. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Dr.
Programozási Grafikus Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 2 Grafikus felhasználói felület Két csomag elemeiből lehet a felületet elkészíteni awt: heavy weight" komponensek swing:
RészletesebbenGráfRajz fejlesztői dokumentáció
GráfRajz Követelmények: A GráfRajz gráfokat jelenít meg grafikus eszközökkel. A gráfot többféleképpen lehet a programba betölteni. A program a gráfokat egyedi fájl szerkezetben tárolja. A fájlokból betölthetőek
Részletesebbenmunkafüzet open eseményéhez
Makrók használata az Excelben - munkafüzet open eseményéhez VBA-eljárás létrehozása Az Auto_Open makróval kapcsolatos fenti korlátozások megkerülhetők az Open eseményhez rendelt VBA-eljárással. Példa Auto_open
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észletesebbenProgramozás II gyakorlat. 8. Operátor túlterhelés
Programozás II gyakorlat 8. Operátor túlterhelés Kezdő feladat Írjunk egy Vector osztályt, amely n db double értéket tárol. A konstruktor kapja meg az elemek számát. Írj egy set(int idx, double v) függvényt,
Ré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észletesebbenAdatintegritás ellenőrzés Felhasználói dokumentáció verzió 2.0 Budapest, 2008.
Adatintegritás ellenőrzés Felhasználói dokumentáció verzió 2.0 Budapest, 2008. Változáskezelés Verzió Dátum Változás Pont Cím Oldal Kiadás: 2008.10.30. Verzió: 2.0. Oldalszám: 2 / 11 Tartalomjegyzék 1.
RészletesebbenC++ programozási nyelv Konstruktorok-destruktorok
C++ programozási nyelv Konstruktorok-destruktorok Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. szeptember A C++ programozási nyelv Soós Sándor 1/20 Tartalomjegyzék
Ré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észletesebbenPelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;
Java osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. ( Előfeltétel 12. Tétel ) Az osztály egy olyan típus leíró struktúra, amely
RészletesebbenProgramozás C++ -ban 2007/7
Programozás C++ -ban 2007/7 1. Másoló konstruktor Az egyik legnehezebben érthető fogalom C++ -ban a másoló konstruktor, vagy angolul "copy-constructor". Ez a konstruktor fontos szerepet játszik az argumentum
RészletesebbenDinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése
FEJLETT PROGRAMOZÁSI NYELVEK, 2009 2. GYAKORLAT - Linux alatti C/C++ programozás Cél: Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése
RészletesebbenHiteles elektronikus postafiók Perkapu
Hiteles elektronikus postafiók Perkapu 2018.10.27. Tartalom Bevezetés...2 Bejelentkezés a Hiteles Elektronikus Postafiókba...2 Perkapu tárhely kiválasztása...2 Beérkezett üzenetek...3 Dokumentumletöltés...4
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észletesebbenBevezetés a Python programozási nyelvbe
Bevezetés a Python programozási nyelvbe 7. Gyakorlat osztályok, objektumok (utolsó módosítás 2018. aug. 28.) Szathmáry László Debreceni Egyetem Informatikai Kar 2018-2019, 1. félév OO programozás Pythonban
RészletesebbenJava VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07.
Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum
Ré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észletesebbenHozzunk létre két rekordot a táblában, majd véglegesítsünk (commit):
Oracle adatbázis elérése A gyakorlat célja az, hogy a hallgató tapasztalatot szerezzen egy szerver oldali adatbázis kezelő rendszer elérésében, gyakorolja a vizuális eszközök és a kapcsolat nélküli (Disconnected
RészletesebbenSzoftvertechnolo gia gyakorlat
Szoftvertechnolo gia gyakorlat Dr. Johanyák Zsolt Csaba http://johanyak.hu 1. Dependency Injection (függőség befecskendezés) tervezési minta A tervezési minta alapgondolata az, hogy egy konkrét feladatot
RészletesebbenEseményvezérelt és objektumorientált programozás
DIALOG BOXES, DATA BINDING, STYLES, TRIGGERS WPF 1 Készítsük el a hallgatók és az oktatók nyilvántartását megvalósító modult. Mindkettő hasonló módon működik, ezért az alábbi leírásban csak a hallgatói
RészletesebbenDropbox - online fájltárolás és megosztás
Dropbox - online fájltárolás és megosztás web: https://www.dropbox.com A Dropbox egy felhő-alapú fájltároló és megosztó eszköz, melynek lényege, hogy a különböző fájlokat nem egy konkrét számítógéphez
RészletesebbenJava 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észletesebbenVizuális és eseményvezérelt programozás , II. félév BMF NIK
Vizuális és eseményvezérelt programozás 2006 2007, II. félév BMF NIK MDI szövegszerkesztő Az SDI és az MDI Szülő- és gyermekablakok Menürendszer MDI alkalmazáshoz A gyermekablakok elrendezése RichTextBox
RészletesebbenJava és web programozás
Budapesti M szaki Egyetem 2013. szeptember 25. 3. El adás User public class User { private String realname_; private String nickname_; private String password_; public User(String realname, String nickname)
RészletesebbenKészítsen négy oldalas prezentációt az E CD bolt számára! Tervezze meg az emblémáját!
2. feladat Készítsen négy oldalas prezentációt az E CD bolt számára! Tervezze meg az emblémáját! 1.Válasszon egyedi hátteret a prezentációnak! 2.Minden oldalon a bolt neve és emblémája jelenjen meg! Az
RészletesebbenPénzügyi algoritmusok
Pénzügyi algoritmusok A C++ programozás alapjai Sztringek Osztályok alapjai Sztringek Szöveges adatok kezelése Sztring Karakterlánc (string): Szöveges adat Karaktertömbként tárolva A szöveg végét a speciális
RészletesebbenAlkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 3/3
Tartalomjegyzék Feladat...2 Az alkalmazás osztálydiagramja...2 Űrlap elkészítése...3 Grafikus felület kialakítása...3 A felületen elhelyezett elemek...3 invoiceform.h...3 invoiceform.cpp...5 Főablak elkészítése...11
RészletesebbenFelhasználói leírás a DimNAV Server segédprogramhoz ( )
Felhasználói leírás a DimNAV Server segédprogramhoz (1.1.0.3) Tartalomjegyzék Bevezetés...3 1. Telepítés...3 2. Eltávolítás...4 Program használata...5 1. Kezdeti beállítások...5 2. Licenc megadása...6
RészletesebbenEntity Framework alapú adatbáziselérés
Entity Framework alapú adatbáziselérés Dr. Johanyák Zsolt Csaba http://johanyak.hu A gyakorlat célja Model-first megközelítéssel Entity-Framework modell létrehozása, majd ebből adatbázis generálása LocalDB-ben.
RészletesebbenAdatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN
Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN B IT v: 2016.03.03 MAN Csomagok A DBMS csomagok a PL/SQL alkalmazások fejlesztését segítik, bennük tároljuk a létrehozott programok kódjait. A specifikációs
RészletesebbenJava 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észletesebben1. Öröklés Rétegelés Nyilvános öröklés - isa reláció Korlátozó öröklődés - has-a reláció
1. Öröklés Az objektum orientált tervezés fontos sarkköve, az osztályok viszonyainak a megtervezése. 1.1. Rétegelés c l a s s Address {..... c l a s s Name {..... c l a s s P e r s o n { Name name ; Address
RészletesebbenVisual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés.
Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. Az osztály egy olyan típus leíró struktúra, amely tartalmaz adattagokat
RészletesebbenProgramozás II gyakorlat. 7. Példák a polimorfizmus alkalmazásaira
Programozás II gyakorlat 7. Példák a polimorfizmus alkalmazásaira Probléma class A { public: ~A() { cout
Részletesebben8. gyakorlat Pointerek, dinamikus memóriakezelés
8. gyakorlat Pointerek, dinamikus memóriakezelés Házi ellenőrzés Egy számtani sorozat első két tagja A1 és A2. Számítsa ki a sorozat N- dik tagját! (f0051) Egy mértani sorozat első két tagja A1 és A2.
RészletesebbenMakrók használata az Excelben - Makróhibák kezelése, biztonságos jelszavak generálása
Makrók használata az Excelben - Makróhibák kezelése, biztonságos jelszavak generálása Makróhibák kezelése A Visual Basic szerkesztőablakában szerkesztés közben elindított futtatással ellenőrizhetjük a
RészletesebbenMűveletek makrókkal. Makró futtatása párbeszédpanelről. A Színezés makró futtatása a Makró párbeszédpanelről
Műveletek makrókkal A munkafüzettel együtt tárolt, minden munkalapon elérhető makrót a Fejlesztőeszközök szalag Makrók párbeszédpanelje segítségével nyithatjuk meg, innen végezhetjük el a makrókkal megoldandó
RészletesebbenJava 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észletesebbenObjektumok inicializálása
Objektumok inicializálása Miskolci Egyetem Általános Informatikai Tanszék Objektumok inicializálása CPP4 / 1 Tartalom public adattagok inicializálása felsorolással konstruktor objektum tömbök osztály típusú
Ré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észletesebbenProgramozás I. gyakorlat
Programozás I. gyakorlat 1. gyakorlat Alapok Eszközök Szövegszerkesztő: Szintaktikai kiemelés Egyszerre több fájl szerkesztése pl.: gedit, mcedit, joe, vi, Notepad++ stb. Fordító: Szöveges file-ban tárolt
RészletesebbenAccess adatbázis elérése OLE DB-n keresztül
Access adatbázis elérése OLE DB-n keresztül Készítsünk egy grafikus felülető alkalmazást, ami lehetıvé teszi egy Access adatbázisban tárolt hallgatói adatok (EHA, Név, e-mail cím) lekérdezését (összes
RészletesebbenJava programozási nyelv 4. rész Osztályok II.
Java programozási nyelv 4. rész Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/17 Tartalomjegyzék
Részletesebben