问题原因及解决思路
问题原因:达芬奇自带的 Qt 和系统的QT无法链接或者说无法调用
解决思路:把系统的libibusplatforminputcontextplugin.so或者libfcitx5platforminputcontextplugin.so链接到达芬奇(取决于你用的是ibus还是fcitx5)
解决问题之前需要做的准备
安装QT5:
sudo dnf install qt5-qtbase-devel qt5-qtdeclarative-devel qt5-qtwebchannel-devel qt5-qtwebengine-devel qt5-qtsvg qt5-qtsvg-devel qt5-qtx11extras-devel
解决步骤(Fedora 40、RHEL 8.9等)
1.查看系统QT5版本:qmake-qt5 --version
~$ qmake-qt5 --version
QMake version 3.1
Using Qt version 5.15.14 in /usr/lib64
2.查看达芬奇自带的QT版本:strings /opt/resolve/libs/libQt5Core.so.5 | rg 'Qt 5'
~$ strings /opt/resolve/libs/libQt5Core.so.5 | rg 'Qt 5'
Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by Clang 12.0.1 )
This is the QtCore library version Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by Clang 12.0.1 )
If that is not possible, in Qt 5 you must at least reimplement
3.我们可以看到系统的QT版本是5.15.14,达芬奇自带的QT版本是5.15.2。从参考文章中已知:一般来说主次版本号不变的话不会有什么不兼容的改动。即本例中只要同样是5.15.x版本,那么就适用于接下来的方法 。
4.复制对应输入法的.so文件到达芬奇对应目录,操作如下:
Fcitx 5 输入法:
sudo mkdir /opt/resolve/libs/plugins/platforminputcontexts
sudo ln -s /usr/lib64/qt5/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so /opt/resolve/libs/plugins/platforminputcontexts
iBus 输入法:
sudo mkdir /opt/resolve/libs/plugins/platforminputcontexts
sudo ln -s /usr/lib64/qt5/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so /opt/resolve/libs/plugins/platforminputcontexts
5.打开达芬奇耍起来吧~
解决步骤(Pop!_OS 22.04、Ubuntu 22.04等)
1.查看系统QT5版本:qmake --version
2.查看达芬奇自带的QT版本:strings /opt/resolve/libs/libQt5Core.so.5 | rg 'Qt 5'
3.从参考文章中已知:一般来说主次版本号不变的话不会有什么不兼容的改动。所以如果系统的QT版本和达芬奇自带的QT版本只有最后一个小数点后的数字不一样,那么就适用于接下来的方法 。
4.复制对应输入法的.so文件到达芬奇对应目录,操作如下:
Fcitx 5 输入法:
sudo mkdir /opt/resolve/libs/plugins/platforminputcontexts
sudo ln -s /usr/lib/qt/plugins/platforminputcontexts/libfcitx5platforminputcontextplugin.so /opt/resolve/libs/plugins/platforminputcontexts
iBus 输入法:
sudo mkdir /opt/resolve/libs/plugins/platforminputcontexts
sudo ln -s /usr/lib/qt/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so /opt/resolve/libs/plugins/platforminputcontexts
5.打开达芬奇耍起来吧~
我有话要说
为什么现在写这篇文章?
因为之前在Pop!_OS系统上的解决方法失效了,然后又查找资料,才发现Fedora系统上QT的目录不一样,所以为了方便那些同样遇到中文输入问题的人,写了这篇文章。希望对你有用~
参考
- https://sh.alynx.one/posts/Input-Method-Support-for-DaVinci-Resolve-on-Linux/
- https://www.bilibili.com/video/BV1Xg4y1x7yE/?p=10&spm_id_from=pageDriver&vd_source=6e5798d6894ee47a3e73383268520402
- https://www.bilibili.com/read/cv33382960/?spm_id_from=333.999.0.0
- https://www.csslayer.info/wordpress/fcitx-dev/a-case-study-how-to-compile-a-fcitx-platforminputcontext-plugin-for-a-proprietary-software-that-uses-qt-5/
- https://szclsya.me/posts/linux/fcitx5-im-module-for-proprietary/