![]()
|
vtbl, _vtbl, __vtbl or similar This indicates that you include the Q_OBJECT macro in a class declaration and probably also run the moc, but forget to link the moc-generated object code into your executable. Read Using the Meta Object Compiler for details on how to use moc.
Qt programs need the following components of the Qt distribution:
/I%QTDIR%\include or -I${QTDIR}/include. They will need the header
files of the version of Qt they wish to build programs with. The
header files are in the include subdirectory of Qt distributions.
bin subdirectory of Qt distributions.
/L%QTDIR%\lib\qt.lib or -L${QTDIR}/lib -lqt. They will need the
libraries of the version of Qt they wish to build programs with. The
libraries are in the lib subdirectory of Qt distributions.
lib
subdirectory of Qt distributions. Shared libraries are made available
to programs in places such as C:\windows\system on Windows
platforms, directories listed in file /etc/ld.so.conf on Linux,
standard lib directories on Unix, or the directories listed in the
environment variable ${LD_LIBRARY_PATH} on Unix/Linux.
Binary packages usually consist of two parts:
qt2.
qt2-dev.
Depending on how you are using Qt, you need to make specific parts of the Qt distribution available to your programs. Typical situations are described below.
qt and a developer package with a name
like qt-dev. You will need the appropriate packages:
qt2-dev or the like).
qt2 or the like) and Qt 1.4x (qt1
or the like).
QTDIR.
Get source distributions of both Qt 1.4x and Qt 2.x.
/opt or
/usr/local. In the case of /opt:
$ cd /opt $ gunzip -c qt-1.44.tar.gz | tar xf - $ cd qt-1.44 $ setenv QTDIR /opt/qt-1.44 $ configure [options] $ make $ cd /opt $ gunzip -c qt-2.1.0.tar.gz | tar xf - $ cd qt-2.1.0 $ setenv QTDIR /opt/qt-2.1.0 $ configure [options] $ make
/opt/qt-1.44 and /opt/qt-2.0.1 to your environment
variable LD_LIBRARY_PATH or make links to the libraries in a
standard directory like /usr/local/lib:
cd /usr/local/lib ln -s /opt/qt-1.44/lib/libqt.so.1 . ln -s /opt/qt-2.1.0/lib/libqt.so.2 .
To develop with Qt 1.4x use:
setenv QTDIR /opt/qt-1.44
setenv PATH ${QTDIR}/bin:${PATH}
To develop with Qt 2.x use:
setenv QTDIR /opt/qt-2.1.0
setenv PATH ${QTDIR}/bin:${PATH}
Setting the PATH ensures that the proper version of moc is being
used. Your Makefile should refer to ${QTDIR}/include and ${QTDIR}/lib to include the proper header files and link with the
proper libraries.
When using Qt without a window manager on Unix/X11, you will very likely experience focus problems. Without a window manager, there is no focus handling on X11, and no concept of an active window either. If you want your application to work in such an environment, you have to explicitly mark a window as active after showing it:
yourWindow->show(); yourWindow->setActiveWindow();
Note that setActiveWindow() won't work if the widget does not become physically visible during this event cycle. However, without a window manager running, this is guaranteed to happen. For the curious reader: setActiveWindow() emulates a window manager by explicitly setting the X Input Focus to a widget's toplevel window.
Other common problems are covered by the online Technical FAQ.
| Copyright © 2005 Trolltech | Trademarks | Qt version 2.3.10
|