Adatok speciális megjelenítése
|
|
- Gréta Péterné
- 6 évvel ezelőtt
- Látták:
Átírás
1 Adatok speciális megjelenítése
2 Speciális adatmegjelenítés Az adatok csoportos megjelenítéshez a nézet számos osztályt (QListView, QTableView, QTreeView) biztosít, amelyekből származtatással továbbiakat definiálhatunk. Ezek adatmezőiben az adatelemek értékeinek megjelenési módját a delegált (QAbstractItemDelegate leszármazott) osztályok biztosítják. Az előre definiált delegált osztályok közül az alap megjelenítést a QItemDelegate, a relációk kezelését a QSqlRelationalDelegate, egyedi megjelenítést pedig a QStyledItemDelegate szolgáltatja. QAbstractItemDelegate QItemDelegate QStyledItemDelegate QSqlRelationalDelegate 2
3 A kiírás egyedi megjelenítése Lehetőségünk van saját delegált osztályok származtatására is, amelyekben az egyedi megjelenítési módok definiáláshoz a paint( ) metódust kell felülírnunk, mivel ez felel az adatelemek értékének kirajzolásáért. a drawdisplay művelettel rajzolhatjuk meg az adatmező felületét a drawfocus művelettel pedig erre rárajzolhatjuk a fókuszt a paint művelet paraméterben megkapja a kirajzoló objektumot (QPainter), a kirajzolási stílust (QStyleOptionViewItem), valamint a kirajzolandó adatot (QModelIndex). A stílusban megfogalmazhatunk különböző módokat (tagolás, igazítás), illetve méretet. A megjelenést táblázat esetén oszloponként is szabályozhatjuk, de hívhatjuk közvetlenül az ősosztályból örökölt műveletet, így az eredeti viselkedést is visszakaphatjuk. 3
4 Példa class MyDelegate : public QItemDelegate { void paint(qpainter *painter,, const QModelIndex &index) const { if (index.column() == 2) { // kettes oszlopra rajzolunk drawdisplay( ); // adat kirajzolása drawfocus( ); // fókusz kirajzolása else { // a többire az alapértelmezettet QItemDelegate::paint( ); 4
5 1.Feladat Módosítsuk az épületek kezelését úgy, hogy egy épület adatainak megjelenése minél beszédesebb legyen. (Ennek egyik részletét, hogy a település kód helyett a település neve látszódjon, az idegenkulcs kapcsolat alapján már megoldottuk.) Az épület tengerparttól vett távolságnak (sea_distance) megjelenítésénél vegyük hozzá az m szöveget a számhoz, illetve 1 érték esetén írjuk ki azt, hogy közvetlen. A tengerpartot jellemző egész szám (shore) helyett annak jelentését írjuk ki: homokos (0), sziklás (1), kavicsos (2), apró kavicsos (3) Az épület jellemzésére használt egész számot (features), amelynek bitjei az épület valamilyen tulajdonságának meglétét vagy hiányát kódolják, a meglevő tulajdonságok szöveges leírásainak összefűzésével jelenítjük meg. 5
6 Adatbázis 6
7 1.Feladat: tervezés BuildingDelegate QSqlRelationalDelegate + BuildingDelegate(QObject*) + paint(qpainter*, QStyleOptionViewItem&, QModelIndex&) :void {query - valuetofeatures(int) :QString {query BuildingEditorDialog QDialog - _tableview :QTableView* - _model :QSqlRelationalTableModel* - _buttonbox :QDialogButtonBox* - _addbutton :QPushButton* - _removebutton :QPushButton* - _submitbutton :QPushButton* - _revertbutton :QPushButton* - _cityeditordialog :CityEditorDialog* + BuildingEditorDialog(QWidget*) + ~BuildingEditorDialog() - setupmodel() :void - setupui() :void «slot» - addbutton_clicked() :void - model_beforeinsert(qsqlrecord&) :void - model_datachanged(qmodelindex&, QModelIndex&) :void - removebutton_clicked() :void - submitbutton_clicked() :void - tableview_doubleclicked(qmodelindex) :void -_cityeditordialog CityEditorDialog QDialog - _listview :QListView* - _model :QSqlTableModel* - _buttonbox :QDialogButtonBox* - _addbutton :QPushButton* - _removebutton :QPushButton* + CityEditorDialog(QWidget*) + ~CityEditorDialog() + setmodel(qsqltablemodel*) :void - setupmodel() :void - setupui() :void «slot» - addbutton_clicked() :void - removebutton_clicked() :void 7
8 1.Feladat: távolság megjelenítése BuildingDelegate::BuildingDelegate(QObject *parent) : QSqlRelationalDelegate(parent){ void BuildingDelegate::paint( QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { switch (index.column()) { kiírás módja case 4: // tengerpart távolság oszlop adat lekérdezése QString text; int shoredistance = index.data().toint(); if (shoredistance == 1)text = "közvetlen"; else text = QString::number(shoreDistance) + " m"; QStyleOptionViewItem optionviewitem = option; optionviewitem.displayalignment = Qt::AlignRight Qt::AlignVCenter; drawdisplay(painter, optionviewitem, optionviewitem.rect, text); drawfocus(painter, optionviewitem, optionviewitem.rect); kiírás break; 8
9 1.Feladat: part megjelenítése a szöveget egy listából kérdezzük le case 5: // tengerpart típus oszlop QString text = shorelist().at(index.data().toint()); QStyleOptionViewItem optionviewitem = option; optionviewitem.displayalignment = Qt::AlignLeft Qt::AlignVCenter; drawdisplay(painter, optionviewitem, optionviewitem.rect, text); drawfocus(painter, optionviewitem, optionviewitem.rect); break; QStringList BuildingDelegate::shoreList() const { QStringList list; list.append(trutf8("homokos")); list.append(trutf8("sziklás")); list.append(trutf8("kavicsos")); list.append(trutf8("apró kavicsos")); return list; 9
10 1.Feladat: jellemzők kiírása case 6: // jellemzők oszlop QString text; if (index.data().isnull() index.data().toint() == 0) { text = "nincsenek"; else { lekérdezett adatok átalakítása text = valuetofeatures(index.data().toint()); QStyleOptionViewItem optionviewitem = option; optionviewitem.displayalignment = Qt::AlignLeft Qt::AlignVCenter; drawdisplay(painter, optionviewitem, optionviewitem.rect, text); drawfocus(painter, optionviewitem, optionviewitem.rect); kiírás break; default: // különben az alapértelmezett kirajzolást végezze QSqlRelationalDelegate::paint(painter, option, index); break; 10
11 1.Feladat: megvalósítás parti szolgálat kert QString BuildingDelegate::valueToFeatures(int value) const { QString result; if (value % 2 == 1) result += trutf8("főút, "); if ((value >> 1) % 2 == 1) result += trutf8("parti szolgálat, "); if ((value >> 2) % 2 == 1) result += trutf8("úszómedence, "); if ((value >> 3) % 2 == 1) result += trutf8("kert, "); if ((value >> 4) % 2 == 1) result += trutf8("saját parkoló, "); if (result.size() > 0) return result.left(result.size() - 2); else főút return result; úszómedence a jellemzők lekérdezését bitenkénti eltolással oldjuk meg saját parkoló 11
12 A szerkesztés egyedi megjelenítése A saját, származtatott delegált osztályokkal az adatelemek értékének egy adatmezőben történő megjelenését nemcsak azok kiírási, de szerkesztési módját is egyedire szabhatjuk. a createeditor( ) művelet felelős a szerkesztőmező tetszőleges QWidget-ként való létrehozásáért, amely akkor jelenik meg az adatelem mezőjében, amikor azt szerkeszteni akarjuk a seteditordata( ) felelős azért, hogy a szerkesztőmező widgetjében a megfelelő modellbeli adat értéke jelenjen meg. a setmodeldata( ) felelős a szerkesztőmezőben történt módosítás visszaírásáért a modellbe. A szerkesztést táblázat esetén oszloponként is szabályozhatjuk, de hívhatjuk közvetlenül az ősosztályból örökölt műveletet, így az eredeti viselkedést is visszakaphatjuk. 12
13 2.Feladat Módosítsuk az épületek kezelését úgy, hogy a tengerpart típusát (homokos, sziklás, kavicsos, apró kavicsos) egy legördülő menü segítségével lehessen kijelölni. Vezessünk be a BuildingDelegate osztályban egy QComboBox típusú egyedi vezérlőt, amely elemeit a parttípusokat tartalmazó konstans lista (shorelist) segítségével töltjük fel. A listában az index segítségével állítjuk a parttípust, így könnyen számolható a legördülő menüben kiválasztott elem (a currentindex segítségével), valamint az adatbázisban visszaírandó érték is. 13
14 2.Feladat: tervezés BuildingDelegate QSqlRelationalDelegate + BuildingDelegate(QObject*) + paint(qpainter*, QStyleOptionViewItem&, QModelIndex&) :void {query + createeditor(qwidget*, QStyleOptionViewItem&, QModelIndex&) :QWidget * {query + seteditordata(qwidget*, QModelIndex&) :void {query + setmodeldata(qwidget*, QAbstractItemModel*, QModelIndex&) :void {query - shorelist() :QStringList {query - valuetofeatures(int) :QString {query BuildingEditorDialog - _tableview :QTableView* - _model :QSqlRelationalTableModel* - _buttonbox :QDialogButtonBox* - _addbutton :QPushButton* - _removebutton :QPushButton* - _submitbutton :QPushButton* - _revertbutton :QPushButton* - _cityeditordialog :CityEditorDialog* QDialog -_cityeditordialog CityEditorDialog QDialog - _listview :QListView* - _model :QSqlTableModel* - _buttonbox :QDialogButtonBox* - _addbutton :QPushButton* - _removebutton :QPushButton* + BuildingEditorDialog(QWidget*) + ~BuildingEditorDialog() + addbutton_clicked() :void + removebutton_clicked() :void + submitbutton_clicked() :void + tableview_doubleclicked(qmodelindex) :void + model_beforeinsert(qsqlrecord&) :void + model_datachanged(qmodelindex&, QModelIndex&) :void - setupmodel() :void - setupui() :void + CityEditorDialog(QWidget*) + ~CityEditorDialog() + setmodel(qsqltablemodel*) :void + addbutton_clicked() :void + removebutton_clicked() :void - setupmodel() :void - setupui() :void 14
15 2.Feladat: szerkesztés létrehozása QWidget* BuildingDelegate::createEditor( Qwidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const { if (index.column() == 5) { // a tengerpart oszlopnál legördülő menü QComboBox *shorecombobox = new QComboBox(parent); shorecombobox->additems(shorelist()); return shorecombobox; tengerpart fajták listája else return QSqlRelationalDelegate::createEditor(parent, option, index); 15
16 2.Feladat: szerkesztés megjelenítése void BuildingDelegate::setEditorData( Qwidget *editor, const QModelIndex &index) const { if (index.column() == 5) { int i = index.data().toint(); QComboBox *shorecombobox = qobject_cast<qcombobox*>(editor); shorecombobox->setcurrentindex(i); szerkesztőmező elemének beállítása else QSqlRelationalDelegate::setEditorData(editor, index); 16
17 2.Feladat: szerkesztés mentése void BuildingDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const { if (index.column() == 5) { QComboBox *shorecombobox = qobject_cast<qcombobox *>(editor); model->setdata(index, shorecombobox->currentindex ()); else QSqlRelationalDelegate::setModelData(editor, model, index); adat visszaírása a modellbe 17
18 3.Feladat Az eddigiek mellett oldjuk meg az épületek jellemzőinek kényelmes szerkesztését. Megjeleníteni az épületek jellemzőit azok felsorolásával már szépen tudjuk, de szerkesztésnél egy egész számot kellett beírni, amelynek 1-es bitjei utalnak a meglévő tulajdonságokra. Javítsunk az épületek jellemzőinek módosításán úgy, hogy ne egy számot kelljen beírni, hanem egy listából lehessen kiválasztani az érvényes jellemzőket. parti szolgálat kert főút saját parkoló úszómedence 18
19 3.Feladat: tervezés Mivel az adatbázisban továbbra is a szám lesz eltárolva, szükségünk lesz egy egyedi lista vezérlőre (FeatureEditorListWidget), amely elvégzi a szám-szöveg konverziót (setfeatures, getfeatures), biztosítja a szöveges formájú kiírást (getfeaturesstring), listaszerűen jeleníti meg az adatokat. Ezt a QListWidget vezérlőből származtatjuk, amelyben lehetőség van több elem egyidejű kijelölésére, így közvetlenül tárolhatjuk a jellemzők állapotát. Az egyedi vezérlőnket a delegált (BuildingDelegate) segítségével helyezzük a szerkezetbe. 19
20 3.Feladat: tervezés QListWidget FeatureEditorListWidget BuildingDelegate QSqlRelationalDelegate + FeatureEditorListWidget(QWidget*) + setfeatures(int) :void + getfeatures() :int {query + getfeaturesstring() :QString {query + BuildingDelegate(QObject*) + paint(qpainter*, QStyleOptionViewItem&, QModelIndex&) :void {query + createeditor(qwidget*, QStyleOptionViewItem&, QModelIndex&) :QWidget * {query + seteditordata(qwidget*, QModelIndex&) :void {query + setmodeldata(qwidget*, QAbstractItemModel*, QModelIndex&) :void {query - shorelist() :QStringList {query BuildingEditorDialog - _tableview :QTableView* - _model :QSqlRelationalTableModel* - _buttonbox :QDialogButtonBox* - _addbutton :QPushButton* - _removebutton :QPushButton* - _submitbutton :QPushButton* - _revertbutton :QPushButton* - _cityeditordialog :CityEditorDialog* QDialog -_cityeditordialog CityEditorDialog QDialog - _listview :QListView* - _model :QSqlTableModel* - _buttonbox :QDialogButtonBox* - _addbutton :QPushButton* - _removebutton :QPushButton* + BuildingEditorDialog(QWidget*) + ~BuildingEditorDialog() + addbutton_clicked() :void + removebutton_clicked() :void + submitbutton_clicked() :void + tableview_doubleclicked(qmodelindex) :void + model_beforeinsert(qsqlrecord&) :void + model_datachanged(qmodelindex&, QModelIndex&) :void - setupmodel() :void - setupui() :void + CityEditorDialog(QWidget*) + ~CityEditorDialog() + setmodel(qsqltablemodel*) :void + addbutton_clicked() :void + removebutton_clicked() :void - setupmodel() :void - setupui() :void 20
21 3.Feladat: megvalósítás FeatureEditorListWidget::FeatureEditorListWidget(QWidget *parent) : QListWidget(parent) { additem(trutf8("főút")); elemek feltöltése additem(trutf8("parti szolgálat")); additem(trutf8("úszómedence")); additem(trutf8("kert")); additem(trutf8("saját parkoló")); QString FeatureEditorListWidget::getFeaturesString() const { QString result; for (int i = 0; i < 5; i++) if (item(i)->checkstate() == Qt::Checked) result += item(i)->data(qt::displayrole).tostring() + ", "; if (result.size() > 0) return result.left(result.size() - 2); else return "nincsenek"; 21
22 3.Feladat: megvalósítás void FeatureEditorListWidget::setFeatures(int features) { kijelölés beállítása a bit értéke szerint for (int i = 0; i < 5; i++){ if (((features >> i) % 2 == 1)) item(i)->setcheckstate(qt::checked); else item(i)->setcheckstate(qt::unchecked); int FeatureEditorListWidget::getFeatures() const { int featuresint = 0; for (int i = 0; i < 5; i++) if (item(i)->checkstate() == Qt::Checked) featuresint += pow(2, i); return featuresint; megfelelő hatványozás a beíráshoz 22
23 Számított adatok megjelenítése Lehetőségünk van a modellben a tényleges adatbázisbeli tartalom mellett, vagy helyett tetszőleges számított adat megjelenítésére. Ehhez egy új, speciális modellt kell származtatnunk, amelyben felüldefiniáljuk az adatlekérdezést végző data(<index>, <szerep>) metódust, amely a pozíció (index) alapján határozza meg a megjeleníteni kívánt adatot valamint az oszlopok számát megadó columncount() metódust, amelynek általában növeljük az értéket Mindkét műveletben hívhatjuk az ősosztályból örökölt műveletet, így az eredeti viselkedést is visszakaphatjuk. 23
24 Adat-kezelési szerepek A data metódus szerep (role) paramétere mutatja, hogy milyen információ lekérdezése céljából hívják meg a metódust. A leggyakoribb szerepek: Qt::DisplayRole: megjelenítés céljából kért (tárolt vagy számított modellbeli) érték (amelyet tovább változtathatunk a delegáltban) Qt::EditRole: szerkesztés céljából kért (tárolt vagy számított modellbeli) érték, amely általában megegyezik a megjelenítés céljából lekérttel Qt::ToolTipRole: előugró üzenet Qt::TextAligmentRole: szövegigazítás az adathoz Qt::TextColorRole, : különböző megjelenítési beállítások, amelyek szabályozhatóak a modell szintjén, illetve a delegált szintjén is 24
25 4.Feladat Egészítsük ki az épületek táblát három számított oszloppal, az épületben lévő apartmanok számával, valamint az apartmanok árai közül a legkisebb és a legnagyobbal. Származtatunk a relációs modellből egy egyedi modellt (BuildingTableModel), amelyben felüldefiniáljuk az adatlekérdezést, az oszlopok számát, illetve az új sor beszúrását (az alapértelmezett érékek beszúrása végett). A három új értéket megfelelő lekérdezések segítségével hozzuk létre (pl. ár esetén az apartment és a price tábla alapján). A delegált osztályban az árak megjelenítését kiegészítjük a pénznem megjelölésével is. 25
26 4.Feladat: tervezés QSqlRelationalTableModel BuildingTableModel + BuildingTableModel(QObject*) + insertrow(int) :void + data(qmodelindex&, int) :QVariant {query + columncount(qmodelindex&) :int {query + onbeforeinsert(qsqlrecord&) :void + ondatachanged(qmodelindex&, QModelIndex&) :void -_model BuildingDelegate QSqlRelationalDelegate + BuildingDelegate(QObject*) + paint(qpainter*, QStyleOptionViewItem&, QModelIndex&) :void {query + createeditor(qwidget*, QStyleOptionViewItem&, QModelIndex&) :QWidget * {query + seteditordata(qwidget*, QModelIndex&) :void {query + setmodeldata(qwidget*, QAbstractItemModel*, QModelIndex&) :void {query - shorelist() :QStringList {query BuildingEditorDialog - _tableview :QTableView* - _model :BuildingTableModel* - _buttonbox :QDialogButtonBox* - _addbutton :QPushButton* - _removebutton :QPushButton* - _submitbutton :QPushButton* - _revertbutton :QPushButton* - _cityeditordialog :CityEditorDialog* QDialog + BuildingEditorDialog(QWidget*) + ~BuildingEditorDialog() + addbutton_clicked() :void + removebutton_clicked() :void + submitbutton_clicked() :void + tableview_doubleclicked(qmodelindex) :void - setupui() :void -_cityeditordialog CityEditorDialog QDialog - _listview :QListView* - _model :QSqlTableModel* - _buttonbox :QDialogButtonBox* - _addbutton :QPushButton* - _removebutton :QPushButton* + CityEditorDialog(QWidget*) + ~CityEditorDialog() + setmodel(qsqltablemodel*) :void + addbutton_clicked() :void + removebutton_clicked() :void - setupmodel() :void - setupui() :void QListWidget FeatureEditorListWidget + FeatureEditorListWidget(QWidget*) + setfeatures(int) :void + getfeatures() :int {query + getfeaturesstring() :QString {query 26
27 4.Feladat: megvalósítás QVariant BuildingTableModel::data(const QModelIndex &index, int role) const { if (!index.isvalid()) return QVariant(); // ha nem érvényes az index, üres adatot adunk vissza if (index.column() == 8 && ( role == Qt::DisplayRole role == Qt::EditRole)) { QSqlQuery query; query.exec( "select count(*) from apartment where building_id = " + apartmanok számának meghatározása this->data(this->index(index.row(), 0)).toString()); if (query.next()) return QVariant(query.value(0).toInt()); else return QVariant(0); 27
28 4.Feladat: megvalósítás else if (index.column() == 9 && ( role == Qt::DisplayRole role == Qt::EditRole)){ // minimum ár QSqlQuery query; minimum ár query.exec("select min(price) from price where apartment_id in (select id from apartment where building_id = " + this->data(this->index(index.row(), 0)).toString() + ")"); if (query.next()) return QVariant(query.value(0).toInt()); else return QVariant("?"); else if (index.column() == 10 && ( role == Qt::DisplayRole role == Qt::EditRole)) { // maximum ár QSqlQuery query; maximum ár query.exec("select max(price) from price where apartment_id in (select id from apartment where building_id = " + this->data(this->index(index.row(), 0)).toString() + ")"); if (query.next()) return QVariant(query.value(0).toInt()); else return QVariant("?"); else return QSqlRelationalTableModel::data(index, role); 28
29 Számított adatok szerkesztése A táblamodell nemcsak a számított adatok lekérdezését, de szerkesztését is lehetővé teszi. A setdata(<index>, <érték>, <szerep>) művelet felüldefiniálásával az adatok szerkesztését specializálhatjuk, amelyben megadhatjuk a számított adatok módosításának tényleges tevékenységét. A számított oszlopot a szerkesztés előtt szerkeszthetővé kell tenni, ehhez felül kell definiálni az oszlopok állapotjelzőit visszaadó flags(<index>) műveletet. Az adott számított oszlopnak kiválaszthatónak (ItemIsSelectable) és szerkeszthetőnek (ItemIsEditable) kell lennie. 29
30 5.Feladat Egészítsük ki az épületek táblát egy állapot oszloppal, amely jelöli, hogy van-e tatarozás az épületben. Az állapot normál, ha mindegyik apartman kiadható, lezárt, ha mindegyik apartman tatarozás alatt van, egyébként felújítás alatt. Lehessen állítani az értéket úgy, hogy normál, vagy lezárt állapotba tudjuk helyezni az épületet. Felveszünk egy számított oszlopot, amely az adatot az apartmanok táblából gyűjti. A megjelenítéshez egy legördülő menüt használunk, amely csak két értéket kap meg, nem mind a hármat. Felüldefiniáljuk az adatbeállítást, ahol az értékeket az apartman táblába írjuk. 30
31 5.Feladat: tervezés QSqlRelationalTableModel BuildingTableModel + BuildingTableModel(QObject*) + insertrow(int) :void + flags(qmodelindex&) :Qt::ItemFlags {query + columncount(qmodelindex&) :int {query + data(qmodelindex&, int) :QVariant {query + setdata(qmodelindex&, QVariant&, int) :bool + onbeforeinsert(qsqlrecord&) :void + ondatachanged(qmodelindex&, QModelIndex&) :void -_model BuildingDelegate QSqlRelationalDelegate + BuildingDelegate(QObject*) + paint(qpainter*, QStyleOptionViewItem&, QModelIndex&) :void {query + createeditor(qwidget*, QStyleOptionViewItem&, QModelIndex&) :QWidget * {query + seteditordata(qwidget*, QModelIndex&) :void {query + setmodeldata(qwidget*, QAbstractItemModel*, QModelIndex&) :void {query - shorelist() :QStringList {query BuildingEditorDialog - _tableview :QTableView* - _model :BuildingTableModel* - _buttonbox :QDialogButtonBox* - _addbutton :QPushButton* - _removebutton :QPushButton* - _submitbutton :QPushButton* - _revertbutton :QPushButton* - _cityeditordialog :CityEditorDialog* QDialog + BuildingEditorDialog(QWidget*) + ~BuildingEditorDialog() + addbutton_clicked() :void + removebutton_clicked() :void + submitbutton_clicked() :void + tableview_doubleclicked(qmodelindex) :void - setupui() :void -_cityeditordialog CityEditorDialog QDialog - _listview :QListView* - _model :QSqlTableModel* - _buttonbox :QDialogButtonBox* - _addbutton :QPushButton* - _removebutton :QPushButton* + CityEditorDialog(QWidget*) + ~CityEditorDialog() + setmodel(qsqltablemodel*) :void + addbutton_clicked() :void + removebutton_clicked() :void - setupmodel() :void - setupui() :void QListWidget FeatureEditorListWidget + FeatureEditorListWidget(QWidget*) + setfeatures(int) :void + getfeatures() :int {query + getfeaturesstring() :QString {query 31
32 5.Feladat: megvalósítás Qt::ItemFlags BuildingTableModel::flags( const QModelIndex& index) const lekérdezzük az alap { állapotjelzőt Qt::ItemFlags flag = QSqlTableModel::flags(index); if (index.column() == 4)// számított oszlop flag = Qt::ItemIsSelectable Qt::ItemIsEditable; return flag; kiválaszthatóvá is, és szerkeszthetővé is tesszük bool BuildingTableModel::setData( const QModelIndex& index, const QVariant& value, int role) { if (index.column() == 4) { if (value.toint() == 0) { apartment táblát kell módosítanunk QSqlQuery query; return (query.exec("update appartment" + "set renovation = 0 where building_id = " + this->data(this->index(index.row(),0)).tostring())); 32
Eseményvezérelt alkalmazások fejlesztése I 11. előadás. Adatkezelés speciális eszközökkel. Giachetta Roberto
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 11. előadás Adatkezelés speciális eszközökkel Giachetta Roberto http://people.inf.elte.hu/groberto Az adatkezelés
Eseményvezérelt alkalmazások fejlesztése I 10. előadás. Adatbázis-kezelés modell/nézet architektúrában. Giachetta Roberto
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 10. előadás Adatbázis-kezelés modell/nézet architektúrában Giachetta Roberto http://people.inf.elte.hu/groberto
Eseményvezérelt alkalmazások fejlesztése I 8. előadás. Adatbázis-kezelés modell/nézet architektúrában
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 8. előadás Adatbázis-kezelés modell/nézet architektúrában 2013.04.17. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Adatbáziskezelés M/V architektúrában
Adatbáziskezelés M/V architektúrában Adatkezelés háromrétegű architektúrában Amikor a memóriában tárolunk és manipulálunk egy adathalmazt (adatmodell), amelyet rendszeresen szinkronizálunk a perzisztenciával,
Elemi alkalmazások fejlesztése IV. Adatbázis-kezelő GUI alkalmazás készítése 3. Összetett tábla karbantartása
Elemi alkalmazások fejlesztése IV. Adatbázis-kezelő GUI alkalmazás készítése 3. Összetett tábla karbantartása Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/eaf4/ Qt 4 2007
Elemi alkalmazások fejlesztése III.
Elemi alkalmazások fejlesztése III. MDI alkalmazás II. (Számla) Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2007 1 Számla felépítése fejléc tábla 2 Az alkalmazás
Alkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 2/3
Tartalomjegyzék Feladat...2 Az alkalmazás osztálydiagramja...2 Modell-nézet (model-view) tervezési minta (bevezetés)...3 Számlatételek kezelése, karbantartása ( táblázat kezelés )...4 A táblázatkezelő
3. Beadandó feladat dokumentáció
3. Beadandó feladat dokumentáció Készítette: Giachetta Roberto E-mail: groberto@inf.elte.hu Feladat: Készítsünk adatbázis alapú, grafikus felületű alkalmazást egy apartmanokkal foglalkozó utazási ügynökség
Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET Core) Cserép Máté
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 4. előadás Megjelenítés és tartalomkezelés (ASP.NET Core) Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu Nézetek
Adabáziselérés ODBC-n keresztül utasításokkal C#-ban
Adabáziselérés ODBC-n keresztül utasításokkal C#-ban 1. Előkészítés Access adatbázis lemásolása, ODBC DSN létrehozása Másoljuk le az alábbiakat: Mit Honnan Hova list.mdb p:\johanyák Csaba\Vizualis programozas\data\
Elemi alkalmazások fejlesztése IV.
Elemi alkalmazások fejlesztése IV. C++/Qt adatbáziskezelő alkalmazás készítése Kdevelop környezetben I. Készítette: Szabóné Nacsa Rozália 1 MySql elindítása [nacsa@localhost nacsa]$ su Password:jelszó
3. Beadandó feladat dokumentáció
3. Beadandó feladat dokumentáció Készítette: Giachetta Roberto E-mail: groberto@inf.elte.hu Feladat: Készítsünk programot a közismert Tic-Tac-Toe játékra. Ebben a játékban a játékosok egy -as játékmezőn
MySql elindítása. Elemi alkalmazások fejlesztése IV. Feladat. Az alkalmazás adatbázisa
Elemi alkalmazások fejlesztése IV. C++/Qt adatbáziskezel ő alkalmazás készítése Kdevelop környezetben I. MySql elindítása [nacsa@localhost nacsa]$ su Password:jelszó [root@localhost nacsa]# /usr/bin/safe_mysqld
2. Beadandó feladat dokumentáció
2. Beadandó feladat dokumentáció Készítette: Giachetta Roberto E-mail: groberto@inf.elte.hu Feladat: Készítsünk programot a következő memóriajátékhoz. A játéktáblán mező foglal helyet, amelyek különböző
Webes 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
Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET) Cserép Máté.
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 4. előadás (ASP.NET) Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu Készült Giachetta Roberto jegyzete alapján
INFORMATIKAI ALAPISMERETEK
Informatikai alapismeretek középszint 1021 ÉRETTSÉGI VIZSGA 2011. május 13. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ NEMZETI ERŐFORRÁS MINISZTÉRIUM
Tartalomjegyzék 2. RENDSZER FELÉPÍTÉSE... 3
Tartalomjegyzék 1. BEVEZETŐ... 2 2. RENDSZER FELÉPÍTÉSE... 3 2.1. FELÜLET... 3 2.2. FELHASZNÁLÓI FUNKCIÓK... 4 2.2.1. Modulok... 4 2.2.2. Előzmények... 4 2.2.3. Lekérdezés működése, beállítások... 5 2.2.4.
2. Beadandó feladat dokumentáció
2. Beadandó feladat dokumentáció Készítette: Giachetta Roberto E-mail: groberto@inf.elte.hu Feladat: Készítsünk programot a következő memóriajátékhoz. A játéktáblán mező foglal helyet, amelyek különböző
Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész
Java Programozás 9. Gy: Java alapok Adatkezelő 5.rész 15/1 B ITv: MAN 2018.04.22 A Keresés funkció Programlogika: 1. A keresés az etm táblamodellben fog keresni, és a találat rekordokat átmásolja egy másik
Egységes és objektumközpontú adatbázis-kezelés (2. rész)
Egységes és objektumközpontú adatbázis-kezelés (2. rész) A folytatásában a bemutatjuk, hogyan kezelhetünk Qt rendszer alatt SQL sormutatót, és készíthetünk grafikus felületet programoknak a Qt Designer
Adatbázis kezelés Delphiben. SQL lekérdezések
Adatbázis kezelés Delphiben. SQL lekérdezések Structured Query Language adatbázisok kezelésére szolgáló lekérdező nyelv Szabályok: Utasítások tetszés szerint tördelhetők Utasítások végét pontosvessző zárja
BME MOGI Gépészeti informatika 7.
BME MOGI Gépészeti informatika 7. 1. feladat Írjon Windows Forms alkalmazást egy kör és egy pont kölcsönös helyzetének vizsgálatára! A feladat megoldásához hozza létre a következő osztályokat! Pont osztály:
Szá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
Adatbázis-kezelés ActiveX vezérl kkel 2.rész
Adatbázis-kezelés ActiveX vezérl kkel 2.rész Készítette: Szabóné Nacsa Rozália 2004. november Feladat Figyelmeztetés, Figyelmeztetés, ha ha betelt betelt a a csoport. csoport. Csoport Csoport kiválasztása
az adatbevitel szabályozása, alapok
az adatbevitel szabályozása, alapok De, Tanító bácsi! Én úgy tudom, hogy ezt igazából, csak adatbázisban tudjuk megtenni! Hááát Ez igaz Pistike! Bár egy-két eszköz a táblázat-kezelő programban is a rendelkezésünkre
SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók
SQL*Plus Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP dolgozó), DEPT osztály) "közönséges" felhasználók Adatszótár: metaadatokat tartalmazó, csak olvasható táblák táblanév-prefixek:
Bevezetés a Programozásba II 8. előadás. Polimorfizmus Giachetta Roberto
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 8. előadás 2014.03.31. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Öröklődés
Általános szoftver architektúrák
Általános szoftver architektúrák Szoftverek architektúrája Szoftver architektúrának nevezzük a szoftver fejlesztése során meghozott elsődleges tervezési döntések halmazát. Az architektúra létrehozása során
MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1
SZE INFORMATIKAI KÉPZÉS 1 ADATBÁZIS-KEZELÉS MS ACCESS 2010 A feladat megoldása során a Microsoft Office Access 2010 használata a javasolt. Ebben a feladatban a következőket fogjuk gyakorolni: Adatok importálása
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
Swing GUI készítése NetBeans IDE segítségével
Programozási Swing e NetBeans IDE segítségével Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 2 2 Eddig a grafikus felhasználói felületet kódból hoztuk létre kézzel. A mi feladatunk volt az
A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.
Vizuális programozás 1. A gyakorlat célja A gyakorlat célja a Könyvtár alkalmazás folytatása az előző gyakorlaton elkészített grafikus felület felhasználásával. Elsőként lemásoljuk az előző gyakorlat eredményeként
Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás
Számítástechnika II. BMEKOKAA153 1. Előadás Dr. Bécsi Tamás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási Tanszék www.kjit.bme.hu A tantárgyi
Fogalmak: Adatbázis Tábla Adatbázis sorai: Adatbázis oszlopai azonosító mező, egyedi kulcs Lekérdezések Jelentés Adattípusok: Szöveg Feljegyzés Szám
Fogalmak: Adatbázis: logikailag összefüggő információ vagy adatgyőjtemény. Tábla: logikailag összetartozó adatok sorokból és oszlopokból álló elrendezése. Adatbázis sorai: (adat)rekord Adatbázis oszlopai:
SEGÉDLET ADATKEZELÉS MS EXCEL-BEN. Tároljuk az adatokat Excel munkalapon. Megjegyzés: A feladatokat MS Office Excel 2003- ban oldottuk meg.
SEGÉDLET ADATKEZELÉS MS EXCEL-BEN Tekintsük az alábbi példát: Népesedési tendenciák a közép-kelet-európai fővárosokban, Nemzetközi összehasonlítások 9. KSH, Budapest 2005. Tároljuk az adatokat Excel munkalapon.
Programozási technológia
Programozási technológia Swing GUI készítése NetBeans IDE segítségével Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Bevezető Eddig a grafikus felhasználói felületet kódból hoztuk létre kézzel. A mi
Változáskezelés Verzió Dátum Változás Pont Cím Oldal Kiadás: Verzió: 2.0. Oldalszám: 2 / 8
Rangsor készítése 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.09.25. Verzió: 2.0. Oldalszám: 2 / 8 Tartalomjegyzék 1. Rangsorolás
Objektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 3. rész Tulajdonságok Indexelők Kivételkezelés Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát
Adatintegritá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.
3. Ezután a jobb oldali képernyő részen megjelenik az adatbázistábla, melynek először a rövid nevét adjuk meg, pl.: demo_tabla
1. Az adatbázistábla létrehozása a, Ha még nem hoztunk létre egy adatbázistáblát sem, akkor a jobb egérrel a DDIC-objekt. könyvtárra kattintva, majd a Létrehozás és az Adatbázistábla menüpontokat választva
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).
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,
A feladatok megoldásához felhasználandó osztályok leírásait az alábbi URL-en találja meg: http://download.oracle.com/javase/6/docs/api/
Java Swing MVC labor Készítette: Budai Péter, BME IIT, 2012. A feladatok megoldásához felhasználandó osztályok leírásait az alábbi URL-en találja meg: http://download.oracle.com/javase/6/docs/api/ Továbbá
Java programozási nyelv 5. rész Osztályok III.
Java programozási nyelv 5. rész Osztályok III. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/20 Tartalomjegyzék
OOP: Java 8.Gy: Abstract osztályok, interfészek
OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus
Programozá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
Elemi alkalmazások fejlesztése III.
Elemi alkalmazások fejlesztése III. Memóriajáték 1. Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu people.inf.elte.hu/nacsa/qt4/eaf3/ Qt 4 2007 1 memorygame Játék közben 2 memorygame Kártyák kiválasztása
C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18
C# Nyelvi Elemei Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 1 / 18 Tartalomjegyzék 1 Object 2 Típusok 3 String 4 RegEx Tóth Zsolt (Miskolci Egyetem) C# Nyelvi
Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás
Számítástechnika II. BMEKOKAA153 2. Előadás Dr. Bécsi Tamás Tömbök (Arrays) Definíció: típus[] név; (pld. int[] szamok; ) Inicializálás: int[] szamok = new int[4]; int[] szamok = 1,2,4,3,5}; int[] szamok
Programozás II gyakorlat. 6. Polimorfizmus
Programozás II gyakorlat 6. Polimorfizmus Típuskonverziók C-ben: void * ptr; int * ptr_i = (int*)ptr; Ez működik C++-ban is. Használjuk inkább ezt: int * ptr_i = static_cast(ptr); Csak egymással
Programozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 13. előadás Throwable Error Exception RuntimeException IOException Saját (általában) Nem ellenörzött kivételek (Unchecked
Globális operátor overloading
Programozás II. 9. gyakorlat Operátor overloading 2: Unáris operátorok, globálisan megvalósított operátorok, > operátorok Kivételkezelés, IO library Globális operátor overloading Előző alkalommal
Thermo1 Graph. Felhasználói segédlet
Thermo1 Graph Felhasználói segédlet A Thermo Graph program a GIPEN Thermo eszközök Windows operációs rendszeren működő grafikus monitorozó programja. A program a telepítést követően azonnal használható.
Webes kurzus kezelés folyamata Oktatói felületek
Webes kurzus kezelés folyamata Oktatói felületek A kurzusok kezelésével kapcsolatban számos paraméterezési lehetőség áll rendelkezésre az ETR rendszerében. Jelen dokumentumban igyekeztünk a kurzusok oktatói
Könyvtári nyilvántartás
Könyvtári nyilvántartás Feladat: Készítette: Az alkalmazás lehetővé teszi egy könyvtári könyv kikölcsönzésének és visszahozásának, az könyvtártagok tagdíj-befizetéseinek és az olvasó terembe történő be-
Közegek és felületek megadása
3. Előadás Közegek és felületek megadása A gyakorlatban nem közömbös, hogy az adott közeg milyen anyagi tulajdonságokkal bír. (Törésmutató, felület típusa, érdessége ) Lehetőség van az anyagok közegének,
és az instanceof operátor
Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában
Táblázatos adatok használata
Táblázatos adatok használata Tartalomjegyzék 1. Az adatok rendezése...2 2. Keresés a táblázatban...2 3. A megjelenő oszlopok kiválasztása...3 4. Az oszlopok sorrendjének meghatározása...4 5. Az oszlopok
Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán
Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában
Programozás I. Első ZH segédlet
Programozás I. Első ZH segédlet Ezen az oldalon: kiírás az alapértelmezett (hiba) kimenetre, sztring konkatenáció, primitív típusok, osztály létrehozás, példányosítás, adattagok, metódusok Kiíratás alapértelmezett
Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17
Adatbázisok 8. gyakorlat SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT 2015. október 26. 2015. október 26. Adatbázisok 1 / 17 SQL nyelv Structured Query Language Struktúrált lekérdez
Elemi alkalmazások fejlesztése IV. Adatbáziskezel alkalmazás készítése QtDesignerben. Készítette: Szabóné Nacsa Rozália
Elemi alkalmazások fejlesztése IV. Adatbáziskezel ő alkalmazás készítése QtDesignerben Készítette: Szabóné Nacsa Rozália 1 Származtatásos modulszerkezet Q t form.ui U formbase.h Örökl ő dés form.h formbase.cpp
Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos
PASzSz Kilencedik témakör: Lazarus-Firebird Készítette: Dr. Kotsis Domokos Az SQLdb fülön IBConnection Kapcsolat A Data Access fülön Az SQLdb fülön... Select 1. Az SQLQuery lezárása. (Active := false,
Egyszerű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
Bizonylatok felvitele mindig a gazdasági eseménnyel kezdődik, majd ezután attól függően jelennek meg dinamikusan a további adatmezők.
Bizonylatok felvitele Bizonylatok felvitele mindig a gazdasági eseménnyel kezdődik, majd ezután attól függően jelennek meg dinamikusan a további adatmezők. Fej Gazdasági esemény Kezdjük el begépelni a
3. modul - Szövegszerkesztés
3. modul - Szövegszerkesztés Érvényes: 2009. február 1-jétől Az alábbiakban ismertetjük a 3. modul (Szövegszerkesztés) syllabusát, amely a gyakorlati vizsga alapját képezi. A modul célja Ezen a vizsgán
Alkalmazott Modul III 6. előadás. Objektumorientált programozás: öröklődés és polimorfizmus
Eötvös Loránd Tudományegyetem Természettudományi Kar Alkalmazott Modul III 6. előadás Objektumorientált programozás: öröklődés és polimorfizmus 2011.10.24. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Választó lekérdezés létrehozása
Választó lekérdezés létrehozása A választó lekérdezés egy vagy több rekordforrásból származó adatokat jelenít meg. A választó lekérdezések a táblák, illetve az adatbázis tartalmát nem változtatják meg,
Objektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 2. rész Öröklés és többalakúság Nemvirtuális metódusok, elrejtés Virtuális metódusok, elrejtés Típuskényszerítés, az is és as operátorok Absztrakt osztályok, absztrakt
Elemi adatbázis kezelés
Elemi adatbázis kezelés Adatbázisok használata Qt alatt A Qt-ben a QtSql module támogatja az SQL elérésű adatbázisok platform- és adatbázis független használatát. Az adatbázis kapcsolat kiépítése során
3. Osztályok II. Programozás II
3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt
Az MS Excel táblázatkezelés modul részletes tematika listája
Az MS Excel táblázatkezelés modul részletes tematika listája A táblázatkezelés alapjai A táblázat szerkesztése A táblázat formázása A táblázat formázása Számítások a táblázatban Oldalbeállítás és nyomtatás
Generikus Típusok, Kollekciók
Generikus Típusok, Kollekciók Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Generikus Típusok, Kollekciók 2013 1 / 26 Tartalomjegyzék 1 Enumeráció 2 Generikus Típusok 3 Kollekciók System.Collections
Bevezetés a programozásba előadás: Öröklődés
Bevezetés a programozásba 2 5. előadás: Öröklődés emlékeztető Tagfüggvény struct koord { double x,y,r; void set(double ux, double uy) { x=ux; y=uy; r=sqrt(x*x+y*y); } Használat: koord k; k.set(4,5); Egységbezárás
CLEAN-PRECÍZ Integrált ügyviteli rendszer. T23. Excel tábla egyéni adattartalom beállítása
CLEAN-PRECÍZ Integrált ügyviteli rendszer T23. Excel tábla egyéni adattartalom beállítása Excel tábla Egyéni adattartalommal A CLEAN Precíz Integrált ügyviteli rendszer hasznos szolgáltatása, hogy az adatlekérdezések
HVK Adminisztrátori használati útmutató
HVK Adminisztrátori használati útmutató Tartalom felöltés, Hírek karbantartása A www.mvfportal.hu oldalon a bejelentkezést követően a rendszer a felhasználó jogosultsági besorolásának megfelelő nyitó oldalra
Java VII. Polimorfizmus a Java nyelvben
Java VII. Polimorfizmus a Java nyelvben Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 19. Java VII. Polimorfizmuss JAVA7 / 1 A kötés (binding( binding) ) fogalma Kötés (binding)
C#, OOP. Osztályok tervezése C#-ban
C#, OOP Osztályok tervezése C#-ban OOP Létrehozás (creating) Megszüntetés (destroying) Túlterhelés (overlading) Felsorolás típus (enumerated types) 2 Hajó osztály Sailboat class using System; class Sailboat
WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK
WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK Horváth Győző Egyetemi adjunktus 1117 Budapest, Pázmány Péter sétány 1/C, 2.420 Tel: (1) 372-2500/1816 2 Ismétlés Ismétlés 3 Fájl/Adatbázis 3 4 Szerver 2 CGI
Programozás II. ATM példa Dr. Iványi Péter
Programozás II. ATM példa Dr. Iványi Péter 1 ATM gép ATM=Automated Teller Machine Pénzkiadó automata Kezelő szoftvert szeretnénk írni Objektum-orientált módon 2 Követelmények Egyszerre csak egy embert
Programozás BMEKOKAA146. Dr. Bécsi Tamás 10. Előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 10. Előadás A Timer komponens Tulajdonságok: Típus Tulajdonság Magyarázat bool Enabled Engedélyezve int Interval Meghívás periódusa ms-ban Metódusok: Típus Metódus
Objektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 3. rész Tulajdonságok Indexelık Kivételkezelés Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendı anyag vázlatát
Felhasználó által definiált adattípus
Felhasználó által definiált adattípus C++ Izsó Tamás 2017. február 24. Izsó Tamás Felhasználó által definiált adattípus/ 1 Irodalom Izsó Tamás Felhasználó által definiált adattípus/ 2 Programtervezési
JavaServer Pages (JSP) (folytatás)
JavaServer Pages (JSP) (folytatás) MVC architektúra a Java kiszolgálón Ügyfél (Böngésző) 5 View elküldi az oldal az ügyfélez View (JSP) Ügyfél üzenet küldése a vezérlőnek 1 3 4 Kérelem továbbítása a megjelenítőnek
Bevezetés a Programozásba II 11. előadás. Adatszerkezetek megvalósítása. Adatszerkezetek megvalósítása Adatszerkezetek
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 11. előadás 2014.05.12. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Adatszerkezetek
Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése
Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése Készítette: Gregorics Tibor Szabóné Nacsa Rozália Alakítsunk át egy infix formájú aritmetikai kifejezést postfix
A feladat lényege egy felhasználói típusnak a zsák típusnak a megvalósítása.
Feladat Készítsen egy egész számokat tartalmazó zsák típust! A zsákot dinamikusan lefoglalt tömb segítségével ábrázolja! Implementálja a szokásos műveleteket (elem betevése, kivétele, üres-e a halmaz,
munkafü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
Vezérlési szerkezetek
Vezérlési szerkezetek Szelekciós ok: if, else, switch If Segítségével valamely ok végrehajtását valamely feltétel teljesülése esetén végezzük el. Az if segítségével valamely tevékenység () végrehajtását
Alkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 3/3
Tartalomjegyzék Feladat...2 Az alkalmazás osztálydiagramja...2 Űrlap elkészítése...3 Grafikus felület kialakítása...3 A felületen elhelyezett elemek...3 invoiceform.h...3 invoiceform.cpp...5 Főablak elkészítése...11
Objektumok 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ú
Osztá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
AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis
AB1 ZH mintafeladatok 1. Töltse ki, és egészítse ki! Matematikai formalizmus arra, hogy hogyan építhetünk új relációkat a régi relációkból. Az adatoknak egy jól strukturált halmaza, amelyből információ
OEP Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat. Elemzés 1
OEP Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat Különféle élőlények egy túlélési versenyen vesznek részt. A lények egy pályán haladnak végig, ahol váltakozó terep viszonyok vannak.
számított mező, számított tétel
számított mező, számított tétel A pivot táblában négy számított objektumot hozhatunk létre. Ebből kettőnek a képletét közvetlenül a felhasználó szerkeszti meg, a másik kettőét a program állítja össze.
A C# programozási nyelv alapjai
A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet
Objektumelvű 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é
Kivé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
van neve lehetnek bemeneti paraméterei (argumentumai) lehet visszatérési értéke a függvényt úgy használjuk, hogy meghívjuk
függvények ismétlése lista fogalma, használata Game of Life program (listák használatának gyakorlása) listák másolása (alap szintű, teljes körű) Reversi 2 Emlékeztető a függvények lényegében mini-programok,