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()
-----------------------------------------------