[Interest] Custom QPlatformInputContextPlugin on Windows

Bernhard Seßler bernhard.sessler at corscience.de
Tue Nov 19 09:53:21 CET 2013


Hi @all,

I'm currently trying to implement a custom platform input context plugin for Qt
5.1.1. For this I've started development on Linux (Ubuntu 13.10 to be precise),
taken the compose Plugin as starting point and implemented a small virtual
keyboard widget, which is opened each time an input field gets focus. So far so
good, the keyboard works just fine on Linux.
My problem is using this plugin on Windows. I mean, it compiles just fine (using
both the MingW 4.8 Toolchain coming with Qt itself and the MSVC 2012 x86
Compiler), but I just can't get Qt to load the plugin (which is driving me mad atm).

I mean, on Linux it's just a matter of copying the shared object file into a
platforminputcontexts/ subdirectory where the executable resides (or directly
into the Qt install prefix to plugins/platforminputcontexts). On Windows Qt does
not event _try_ to open any platforminputcontexts subdirectory (neither where
the executable resides, nor in the Qt installation directory). So I was
thinking: "fine, let's copy it to the platforms/ subdirectory". Now Qt
recognizes the .dll and tries to fetch its metadata - but it seems that it's
unable to actually retrieve it (the output is just empty). Setting the
QT_DEBUG_PLUGINS environment variable to 1 prints this when executing my
application:

---8<---
QFactoryLoader::QFactoryLoader() looking at
"C:/devel/Qt/5.1.1/mingw48_32/plugins/platforms/qwindowsd.dll"
Got keys from plugin meta data ("windows")
QFactoryLoader::QFactoryLoader() checking directory path
"[...]build-mingw/concepts/clickdummy/src/platforms" ...
QFactoryLoader::QFactoryLoader() looking at
"[...]build-mingw/concepts/clickdummy/src/platforms/libkeyboardplatforminputcontextplugin.dll"
Got keys from plugin meta data ()
loaded library "C:/devel/Qt/5.1.1/mingw48_32/plugins/platforms/qwindowsd.dll"
--->8---

As you can see, the windows platform plugin is loaded successfully and the
metadata is read correctly. Unfortunately that's not the case for my custom plugin.

I should mention that I'm using CMake as build system - but I've also tried
building the plugin with a qmake project file with exactly the same results.

So, is anybody out there willing to give me a hand in this? After all I've tried
I'm finally at the end of my knowledge. Btw, yes, I've set the QT_IM_MODULE
environment variable correctly and added QT_SHARED and QT_PLUGIN as compile
definitions.


-- 
Mit freundlichen Grüßen / Kind Regards,

Bernhard Seßler, B.A.
R&D

Corscience GmbH & Co. KG
Henkestr. 91
D-91052 Erlangen
Germany

Tel: +49 9131 977986-516
Fax: +49 9131 977986-445
e-mail: bernhard.sessler at corscience.de <mailto:bernhard.sessler at corscience.de>
Internet: www.corscience.de <http://www.corscience.de/>

--------------------------------------------------------------------------------
Corscience GmbH & Co. KG
Sitz der Gesellschaft/Place of business: Erlangen
Amtsgericht/Local court: Fürth
Handelsregisternummer/Commercial Register No.: HRA 7510
Geschäftsführer/Managing director: Prof. Dr. Armin Bolz, Dipl.-Volksw. Marc
Griefahn

CONFIDENTIALITY:
This e-mail and any attachments are confidential and may also be
privileged. If received in error, please do not disclose the contents to
anyone, but notify us immediately by return e-mail and delete this e-mail
and any attachments from your system. Thank you.




More information about the Interest mailing list