ubuntu Qt Creator不能输入中文
解决方式为下面的脚本,如果你的Qt是安装在根目录下,那么需要加sudo,如果不是,直接运行即可
sudo bash ChineseInputForQt-v1.1.sh# 或者bash ChineseInputForQt-v1.1.sh
脚本内容为:
#! /bin/bash
#------------------------------------------------------------------------------
# Filename: chineseForQt.sh
# Usage: ./chineseForQt.sh
# Version: 1.0
# Date: 2017-45-04
# Author: vincent
# Email: N/A
# Description: N/A
# Notes: N/A
# 解决Qt中不能输入中文的问题
# 支持ubuntu 16.04,ubuntu 18.04,linux mint
#-------------------------------------------------------------------------------
# 查找Qt的安装目录installPath=$(ls /usr/share/applications/ | grep -x "DigiaQt-qtcreator-community.desktop" )ExecStr=""if [ -z "$installPath" ]
theninstallPath=$(ls /usr/share/applications/ | grep -x "DigiaQt-qtcreator-enterprise.desktop")if [ -z "$installPath" ]theninstallPath=$(ls /usr/share/ubuntu/applications/ | grep -x "DigiaQt-qtcreator-enterprise.desktop")if [ -z "$installPath" ]thenecho "Qt Creator is not installed !!!"exit 1elseExecStr=$(grep Exec /usr/share/ubuntu/applications/$installPath)fielseExecStr=$(grep Exec /usr/share/applications/$installPath)fi
fiExecStr=$(echo ${ExecStr#*=})
ExecStr=$(echo ${ExecStr%/Tools*})
installPath=$ExecStrdeclare USER=$(who | awk '{print $1}')
declare QT_VERSION=$(echo ${installPath#*Qt})folderName=$(echo -e "${QT_VERSION%.*}") # 去除数字 如5.9.0去除 .0folderArray=($(ls $installPath))for(( i=0; i < ${#folderArray[@]}; i++ ))
doif [[ ${folderArray[$i]} == $folderName* ]]thenfolderName=${folderArray[$i]}breakfi
donedeclare libName="libfcitxplatforminputcontextplugin.so"
declare sourceFilePath="/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/$libName"
declare destFolderPath="$installPath/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/"
declare dstFolderAnotherPath="$installPath/$folderName/gcc_64/plugins/platforminputcontexts/"outputMsg()
{if [ $1 -ne 0 ]thenecho "unsuccessful !!"exit 1fi
}#sudo -s
sudo apt-get install -y fcitx-libs-qt5 > /dev/nullsudo cp $sourceFilePath $destFolderPath
outputMsg $?
sudo chown $USER:$USER ${destFolderPath}$libName
outputMsg $?
chmod 777 ${destFolderPath}$libName
outputMsg $?sudo cp $sourceFilePath $dstFolderAnotherPath
outputMsg $?
sudo chown $USER:$USER ${dstFolderAnotherPath}$libName
outputMsg $?
chmod 777 ${dstFolderAnotherPath}$libName
outputMsg $?echo "Successful! You can do it!"