Revision [462]
This is an old revision of MakeScimWorkWithQT made by Irihapeti on 2009-08-13 05:07:00.
Setting up Scim to work with QT Applications
Using precompiled packages
Scim and scim-bridge can be used with QT applications, though not all QT applications are very well behaved.
You will need to install the files mentioned in the GTK section.
QT3
QT3 by default does not have support for the scim-bridge drivers. Instead, you will need a patched version of QT3 which has been compiled with immodule support.
Currently, this version, qt-im-3.3.8.pet, is available here.
The scim-bridge driver is included in the package.
This package installs to /usr/lib/qt-im-3.3.8. Therefore, it will not overwrite or get mixed up with any other version of QT3 that might be on your computer. You will, though, need to adjust your /etc/profile to tell the system to use this version of QT3. It was originally intended to have an install script do this, but a bug in Puppy has prevented this for the moment.
How to change your /etc/profile so the new QT3 works
If this seems scary, take a deep breath and relax. It's actually quite easy.
Go to the /etc directory and open the file "profile" with Geany or other text editor.
Near the beginning of the file you'll find a section that looks like this (unless someone's played with it).
In Puppy 2.17 & 3.01:
if [ -e /usr/lib/qt ];then #do not use -d as qt may be link?
QTDIR=/usr/lib/qt
export QTDIR
PATH=$QTDIR/bin:$PATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
fi
In Puppy 4.00 it's a bit different but does the same thing:
if [ -e /usr/lib/qt ];then
export QTDIR=/usr/lib/qt
[ -d /usr/lib/qt/bin ] && PATH=/usr/lib/qt/bin:${PATH}
LD_LIBRARY_PATH=/usr/lib/qt/lib:$LD_LIBRARY_PATH
fi
The bits that say "qt" need to be changed so that they say "qt-im-3.3.8". So you end up with a section that looks like this:
if [ -e /usr/lib/qt-im-3.3.8 ];then #do not use -d as qt may be link?
QTDIR=/usr/lib/qt-im-3.3.8
export QTDIR
PATH=$QTDIR/bin:$PATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
fi
Or, in Puppy 4.00:
if [ -e /usr/lib/qt-im-3.3.8 ];then
export QTDIR=/usr/lib/qt-im-3.3.8
[ -d /usr/lib/qt-im-3.3.8/bin ] && PATH=/usr/lib/qt-im-3.3.8/bin:${PATH}
LD_LIBRARY_PATH=/usr/lib/qt-im-3.3.8/lib:$LD_LIBRARY_PATH
fi
This package works with Puppy 2.17, 3.01 and 4.00. If you are installing qt-im-3.3.8.pet to Puppy 4.00, you also need to install libGLU-1.3.pet.
Once these packages are installed, along with scim and scim-bridge, and you've edited /etc/profile, restart the X-server, or reboot, and scim should be usable with QT3 applications.
QT4
Installing QT4 in Puppy 4.00 is straightforward. The official QT4 .pet package will work. All you need in addition is the scim driver, which is packaged as scim-bridge-qt4-p4.pet.
For earlier Puppy versions, different packages are needed.
A version of QT4 that will work on Puppy 2.17 and 3.01 can be downloaded here.
It includes a script that should mean that the environment variables are all set up for you.
If that doesn't work, QT4 programs won't run. If you open a terminal (click on the console icon) and type the name of your program, you'll get a message something like this:
error loading libQT....so.4 no such file or directory.
If that happens, do this:
Open your /etc/profile with Geany or other text editor.
Find the entry that refers to QT3. It will be in the first half of the file. Look at the QT3 section of this article to see exactly what you are looking for.
Immediately after the word "fi" at the end of this part, press "return" and insert the following lines (copy and paste them from here, if you like):
QT4DIR=/usr/lib/qt-4.3.4
export QT4DIR
PATH=$QT4DIR/bin:$PATH
LD_LIBRARY_PATH=$QT4DIR/lib:$LD_LIBRARY_PATH
Save the file. Now restart the X server, or reboot if you prefer, and QT4 programs should be working.
If you are going to be compiling things and want the QT4 "development" files, they are available at http://www.puppylinux.ca/members/Irihapeti. Read the README.qt4 file in that directory for more information.
Important!
QT plugins cannot be "mixed and matched". You can't take a plugin from another compilation, even if it's the same version number, and expect it to work. The safest thing is to make sure that they've been compiled against the specific version of QT that you are going to use. Alternatively, compile the plugins yourself.
If you are installing QT3 or QT4 which has been compiled in another system, the installation location must match, symlinks and all. For example, if QT3 was compiled to /usr/lib/qt3, which was a symlink of /mnt/home/qt-x11-free-3.3.8, you need to set it up that way in the new system. Otherwise, it can't find header files and immodules won't work.