portovanie do QT4: ------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------ Zmeny nad projektom: 1. mame zdrojaky fungujuce na QT3 2. nastavit projektovy subor xxx.kdevelop na R/W a nacitat projekt v kdevelope 3. v kdevelope nastavit v menu Project/Project options zalozka C++ Support a Qt Options zaskrtnut check box Enable Qt options v sekcii Qt version, Directory and QMake Binary vybrat Qt 4 zmazat cestu QMake Binary - si tam potom dohodi svoju OK a znovu nacitat projekt 4. ak su v projekte ui subory: ui subory sa oproti Qt3 zmenili - QtDesigner 4 neprecita ui subory generovane Qt Designerom 3 a naopak pre kazdy ui subor treba pre konveziu zavolat uic3 -convert StarySubor.ui > NovySubor.ui uic generuje triedu, ktora uz nie je potomkom QWidgetu - treba do subclassu doplnit dedenie od QWidgetu a v jeho konstruktore zavolat metodu setupUi(QWidget*), ktoru generuje uic v generovanej triede odlisnostou oproti QT3 je aj to, ze nazov suboru s triedou XXX, ktory generuje uic je ui_XXX.h a trieda XXX je za namespaceom Ui a dedi od triedy s nazvom Ui_XXX - treba kuknut dany subor a bude to jasnejsie :-) 5. zmenilo sa toho viac - je treba modifikovat aj nejake zdrojaky; nizsie som popisujem co som musel este zmenit aby som to mohol vykompilit ------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------ Zmeny v nasich zdrojakoch: (Qt3 --> Qt4) V niektorych ui suboroch mi po konverzii zostal riadok qPixmapFromMimeSource a uic potom generuje v h-cku aj #include co je zavislost na Qt3 supporte. Vyhodenim uvedeneho riadku z ui subora sa zmenil h-ckovy subor tak, ze spominany inklud tam uz nebol. --------------------------------------------- QLabel::StrongFocus --> Qt::StrongFocus -------------------------------------------- QString text; text.rightJustify(...) --> text.rightJustified(...) ascii() --> toAscii() (toAscii().data()) stripWhiteSpace() --> trimmed() find() --> indexOf() findRev() --> lastIndexOf() -------------------------------------------- QLabel *label; label->setPaletteBackgroundColor(...) --> QPalette palette; palette.setColor(label->backgroundRole(), QColor(...)); label->setPalette(palette); predtym ale este treba nastavit (napr. v konstruktore) label->setAutoFillBackground(true); podobne setPaletteForegroundColor(), .... backGroundColor() --> label->palette().color(label->backgroundRole()) -------------------------------------------------- QApplication app; app.setMainWidget(...) --> v novych app sa tento riadok vynehava (aspon co som videl v qt4-examples) a funguje to QApplication::setOverrideCursor(const QCursor & cursor, bool replace = FALSE); --> QApplication::setOverrideCursor(const QCursor & cursor); -------------------------------------------------- Qt::Key_BackSpace --> Qt::Key_Backspace ------------------------------------------------- QValueList --> QList QWalueList::remove() --> QList::removeAll() QWalueList::findIndex() --> QList::indexOf() QValueListIteratorit; --> QListIteratorit(*this->data->w_history); ------------------------------------------------- QWidget widget; widget.polish() --> widget.ensurePolished () isShown() --> isVisible() ------------------------------------------------- QKeyEvent::state() --> QKeyEvent::modifiers() Qt::ShiftButton --> Qt::ShiftModifier , ... ------------------------------------------------ v libke eui boli prerobene makra: EUI_CREATE_WINDOW_PH \ --> zruseny parameter flag EUI_CREATE_WINDOW / vo formVydaj bola zrusena sipka - treba ju vykreslovat inak ------------------------------------------------ QListView - zostalo, ale zmenila sa filozofia pouzivania Zda sa mi najjednoduchsie nahradit ho QTreeWidgetom. V tomto pripade ide o vypis zoznamu s viacerymi stlpcami, ale iba jednou urovnou vypisovania. Teda su tam iba top-level zaznamy!!! V inom pripade by nahrada metod nemusela byt spravna. setSorting() --> setSortingEnabled() setSorting(podla stlpca) --> sortByColumn ( int column, Qt::SortOrder order ) firstChild() --> topLevelItem(0) lastItem() --> topLevelItem(topLevelItemCount()-1) setSelected() --> treeWidgetItem->setSelected() ensureItemVisible() --> scrollToItem() findItem(string,0,Qt::BeginsWith) --> QList list = lvwVyber->findItems(paText, Qt::MatchStartsWith); if (list.count() > 0) return list.at(0); //vrati prvy z nich else return NULL; addColumn(); - miesto pridania stlpca sa nastavi pocet stlpcov setColumnCount() addColumn (const QString & label, int width = -1) - pre nastavenie sirky stlpca setColumnWidth (int column, int width) childCount() --> topLevelItemCount() setSelectionMode(QListView::Single) --> setSelectionMode(QAbstractItemView::SingleSelection) setColumnWidthMode() --> resizeColumnToContents() setColumnAlignment(2, Qt::AlignRight); --> treeWidgetItem->setTextAlignment (2, Qt::AlignRight) columns() --> columnCount() QTreeWidgetItem::isOpen --> isExpanded() QTreeWidgetItem::setOpen() -->setExpanded() setDragAutoScroll() --> setAutoScroll() header() --> headerItem() headerItem()->setLabel() --> headerItem()->setText() headerItem()->hide() --> headerItem()->setHidden(true) QTreeWidgetItemIterator it; it.current() --> (*it) ------------------------------------------------ Zmeny v metodach medzi QListView a QListWidgetom: setSorting() --> setSortingEnabled() firstChild() --> item(0) lastItem() --> item(count()-1) ensureItemVisible() --> scrollToItem() ------------------------------------------------ Zmeny v metodach medzi QListBox a QListWidgetom: insertItem() --> addItem(); changeItem(text, poradie) --> item(poradie)->setText(text) ------------------------------------------------ QTimer changeInterval() --> setInterval() start(mSec, singleShot) --> setSingleShot(bool); start(mSec); ------------------------------------------------ QPixmap convertFromImage() --> fromImage() ------------------------------------------------ QSpinBox: setMinValue() --> setMinimum() setMaxValue() --> setMaximum() setLineStep() --> setSingleStep() ------------------------------------------------ QTable --> QTableWidget horizontalHeader() --> horizontalHeaderItem(poradie) horizontalHeader()->setLabel(poradie, text) --> horizontalHeaderItem(poradie)->setText(text) numCols() --> columnCount() setText(row, col, text) --> item(row, col)->setText(text) ------------------------------------------------ QProgressBar: ------------------------------------------------ QFile: open(IO_ReadOnly) --> open(QIODevice::ReadOnly) setName() --> setFileName() ------------------------------------------------ QCustomEvent::User --> QEvent::User ------------------------------------------------ QWidgetStack --> QStackedWidget raiseWidget() --> setCurrentWidget() ------------------------------------------------ QDataStream: writeRawBytes() --> writeRawData() ------------------------------------------------ QTextStream: setEncoding() --> setCodec() ------------------------------------------------ QDir: setNameFilter() --> setNameFilters() ----------------------------------------------- QFileInfo: absFilePath() --> absoluteFilePath() -----------------------------------------------