Keyboard layout switching in Qt, not just in Qt for embedded Linux
-
Then if you don't have any graphic server/window manager and are using the linux frame buffer then you have to use Qt for Embedded Linux. Or there's something I'm missing
-
Before that, can you tell me what software setup you had planned ?
-
Simple what are the software architecture you want to use. Until now you wrote that your were using a self-built distribution with a custom kernel and not wanted to use Qt Embedded, but don't have any window manager nor graphic server.
So what would your software stack be ?
-
So all in all quick version: -> kernel -> busybox -> Qt Application ?
-
Well, then Qt for Embedded Linux is the only option. Why did you want to use it in the first place ?
-
Ok, we'll try that.
Assuming you were asking: "Why did you not want to use it in the first place ?"
Well, the project has been running for a few years now, requirements kept changing and keyboard layout switching was added to the specification just recently.I have a question about the tutorial on http://doc.qt.digia.com/4.6/qt-embedded-install.html:
How do I switch between my two Qt versions? I use Qt Simulator for simulations and when compiling our stuff on the hardware, we use a makefile without QtCreator. Do I only have to change $PATH?
If possible I'd like to keep the code working for both versions by using a #compileflag -
Indeed, the was a word missing :D
Just create one kit for each Qt version and use both for you project, then you can switch at will from Qt Creator
-
Ok, but how? Is it enough to choose the corresponding qmake in the "Build Settings/General/Qt Version/Manage"? Qt Simulator doesn't allow me to change that one.
And if I run a shell-script to compile everything together for the hardware, how does the system know which Qt to use if I change it only in QtCreator?
-
Wait, Qt Simulator ? The one from the Nokia time ?
-
Yes, that one, but I can compile it in Desktop mode, too, if I have to. Qt simulator has the advantage of not being fullscreen (because it provides its own virtual screen), so I've used it until now. Though I don't mind abandoning it if it means getting those accursed keyboard layouts to work.
But just switching qmake doesn't make a difference. I followed the tutorial on http://doc.qt.digia.com/4.6/qt-embedded-install.html (but didn't setup the virtual frame buffer), so I'd expect that at least "QKbdDriverFactory::create" shouldn't be an undefined reference anymore. I know that I still need to do some other things to get it to run, like finding out where the QApplication object is that needs to be constructed with the QApplication::GuiServer type, but that shouldn't matter for the compiler, right?
-
Indeed.
What I do when I have to develop for embedded is to build an embedded version for x86 that uses QVFB so I have the same set of libraries than the version from my target.
-
Are you sure you are doing an x86 embedded build ?
If you are using Qt Creator, just switch from one kit to another one. Or if from the command line, use the correct qmake version.
-
The simplest way on the command line is to give the full path to the qmake corresponding to which version of Qt you want to compile with.
On Qt Creator, you have to check your kits.
Have a nice time