我正在编写一个基于QtVirtualKeyboard的定制虚拟键盘。在我的项目中,我需要能够使用我的键盘版本。
但是,我发现的唯一方法是重新编译项目,并在我的版本"qtvirtualkeyboardplugin.dll“中替换"mingw53_32\plugins\platforminputcontexts”中的原始"qtvirtualkeyboardplugin.dll“。并在qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));中使用main.cpp函数
在阅读了几个小时的文档和尝试了各种事情之后,我仍然找不到方法在本地使用自定义键盘,而不删除原始的"qtvirtualkeyboardplugin.dll“。
发布于 2017-03-30 10:41:11
我假设您已经分叉了代码,在这种情况下,下面的修改似乎足以使plugins/platforminputcontexts安装一个不同名称的插件
qtvirtualkeyboard/src/virtualkeyboard/qtvirtualkeyboard.json重命名为qtvirtualkeyboard/src/virtualkeyboard/customvirtualkeyboard.json。customvirtualkeyboard.json中,将qtvirtualkeyboard键重命名为customvirtualkeyboard。qtvirtualkeyboard/src/virtualkeyboard/plugin.cpp中,将pluginName字符串的内容更改为customvirtualkeyboard。qtvirtualkeyboard/src/virtualkeyboard/plugin.h中,将FILE字符串更改为customvirtualkeyboard。src/virtualkeyboard/virtualkeyboard.pro中,将TARGET = qtvirtualkeyboardplugin更改为TARGET = customvirtualkeyboardplugin。这会影响您在.dll中看到的已安装的plugins/platforminputcontexts、.lib等的名称。下面是作为Git diff所做的更改:
diff --git a/src/virtualkeyboard/customvirtualkeyboard.json b/src/virtualkeyboard/customvirtualkeyboard.json
new file mode 100644
index 0000000..9ef7a87
--- /dev/null
+++ b/src/virtualkeyboard/customvirtualkeyboard.json
@@ -0,0 +1,3 @@
+{
+ "Keys": [ "customvirtualkeyboard" ]
+}
diff --git a/src/virtualkeyboard/plugin.cpp b/src/virtualkeyboard/plugin.cpp
index 73ddeab..4abe9a4 100644
--- a/src/virtualkeyboard/plugin.cpp
+++ b/src/virtualkeyboard/plugin.cpp
@@ -76,7 +76,7 @@ using namespace QtVirtualKeyboard;
Q_LOGGING_CATEGORY(qlcVirtualKeyboard, "qt.virtualkeyboard")
-static const char pluginName[] = "qtvirtualkeyboard";
+static const char pluginName[] = "customvirtualkeyboard";
static const char inputMethodEnvVarName[] = "QT_IM_MODULE";
static const char pluginUri[] = "QtQuick.VirtualKeyboard";
static const char pluginSettingsUri[] = "QtQuick.VirtualKeyboard.Settings";
diff --git a/src/virtualkeyboard/plugin.h b/src/virtualkeyboard/plugin.h
index 08074d1..19593a4 100644
--- a/src/virtualkeyboard/plugin.h
+++ b/src/virtualkeyboard/plugin.h
@@ -38,7 +38,7 @@
class QVirtualKeyboardPlugin : public QPlatformInputContextPlugin
{
Q_OBJECT
- Q_PLUGIN_METADATA(IID QPlatformInputContextFactoryInterface_iid FILE "qtvirtualkeyboard.json")
+ Q_PLUGIN_METADATA(IID QPlatformInputContextFactoryInterface_iid FILE "customvirtualkeyboard.json")
public:
QStringList keys() const;
diff --git a/src/virtualkeyboard/qtvirtualkeyboard.json b/src/virtualkeyboard/qtvirtualkeyboard.json
deleted file mode 100644
index 76d1706..0000000
--- a/src/virtualkeyboard/qtvirtualkeyboard.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "Keys": [ "qtvirtualkeyboard" ]
-}
diff --git a/src/virtualkeyboard/virtualkeyboard.pro b/src/virtualkeyboard/virtualkeyboard.pro
index 4f3ca69..e9b0ff9 100644
--- a/src/virtualkeyboard/virtualkeyboard.pro
+++ b/src/virtualkeyboard/virtualkeyboard.pro
@@ -1,4 +1,4 @@
-TARGET = qtvirtualkeyboardplugin
+TARGET = customvirtualkeyboardplugin
DATAPATH = $$[QT_INSTALL_DATA]/qtvirtualkeyboard
QMAKE_DOCS = $$PWD/doc/qtvirtualkeyboard.qdocconf请记住,如果您使用的是开源许可证,您必须修改Qt代码,以供应用程序的用户使用。。
https://stackoverflow.com/questions/43114291
复制相似问题