1. 程式人生 > >qt顯示中文

qt顯示中文

https://github.com/fcitx/fcitx-qt5

Ubuntu16.04下qtcreator 3.6.1不能輸入中文(fcitx)

2016年05月25日 09:34:39 莫急莫慌 閱讀數:985

在ubuntu16..04下安裝Qt5.6,qtcreator 3.6.1後,發現不能輸入中文,在網上搜索了一下發現現有解決辦法或因版本號不對或因過程複雜都未能解決問題。

http://my.oschina.net/u/219482/blog/341452

該部落格中的方法可以未能完全解決問題,需要做稍微修改,應該是新版本檔案存放的目錄有所改變。

 

摘自上面的部落格:

1.安裝fcitx-frontend-qt5

sudo apt-get install fcitx-frontend-qt5

2.將安裝後的fcitx-frontend-qt5複製到qt安裝目錄

通常,fcitx-frontend-qt5在下面的目錄路徑中(可用命令dpkg -L 包名看檔案安裝路徑):

/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so

將該檔案複製到

qt安裝目錄//Tools/QtCreator/bin/plugins/platforminputcontexts

qt安裝目錄/5.3/gcc_64/plugins/platforminputcontexts

 

重新開啟 QtCreator,終於可以輸入中文了。

如果還是不行,重啟電腦,再開啟Qtcreator,就可以了

 

 

實際操作時發現第二步中的目錄/Tools/QtCreator/bin/plugins/platforminputcontexts在qtcreator3.6.1中是不存在的,但可以將該目標變為

/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts

如此便能解決在Qtcreator3.6.1中無法輸入中文的問題。

 

ubuntu16.04下fcitx無法在QT Creator輸入中文解決辦法

我的部落格新地址:www.liuquanhao.com

------------------------------------------------------

Qt creator無法用fcitx輸入中文的原因是自己的plugins目錄下沒有fcitx的外掛,所有隻要把外掛複製到裡面就可以了。

qt creator外掛目錄:qt安裝目錄/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts。

需要的fcitx輸入法外掛檔案:libfcitxplatforminputcontextplugin.so

解決方法:

使用dpkg查詢外掛檔案,fcitx在fcitx-frontend-qt5中,沒有就用apt安裝即可。

$ dpkg -L fcitx-frontend-qt5 | grep .so

/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so

然後複製這個檔案到QT Creator目錄:

$ cd qt安裝目錄/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts/
$ cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so .
$ chomd +x libfcitxplatforminputcontextplugin.so

然後重啟QT Creator即可輸入中文。

---------------------------------------------------------------

編譯程式後程序無法輸入中文問題,也是缺少外掛的原因。

$ cd QT安裝目錄/5.8/gcc_64/plugins/platforminputcontexts
$ cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so .
$ chomd +x libfcitxplatforminputcontextplugin.so

然後重新編譯即可。

Qt5中文輸入的問題

2016年05月31日 00:08:19 張京林要加油 閱讀數:6652 標籤: qt中文輸入fcitx-qt5Qt5-5 更多

個人分類: Qt存檔Ubuntu

一、前言

本部落格是為了解決在Qt5.4和Qt5.5下的中文輸入問題,博主所用的Qt版本是Qt5.5.1,中文輸入法是搜狗輸入法,作業系統是ubuntu 14.04

Qt5.3及以前的版本可以通過複製/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/下的libfcitxplatforminputcontextplugin.so 到Qt5.3.1/5.3/gcc_64/plugins/platforminputcontexts 
/Qt5.3.1/Tools/QtCreator/bin/plugins/platforminputcontexts 解決Qt下的中文輸入問題,但是Qt5.4和Qt5.5,舊辦法失效,原因是Qt5.4後對之前Qt5版本不再二進位制相容,libfcitxplatforminputcontextplugin.so 需要編譯最新的fcitx-qt5。 
博主編譯的libfcitxplatforminputcontextplugin.so可以下載使用,但是要記得給這個檔案可執行許可權

參考lieefu的部落格: 
解決Qt5 Creator無法切換輸入法(fcitx),Ubuntu中不能使用搜狗輸入法錄入漢字問題

二、從原始碼編譯fcitx-qt5

安裝cmake和fcitx-libs-dev:

$ sudo apt-get install cmake
$ sudo apt-get install fcitx-libs-dev
  • 1
  • 2

根據Qt安裝路徑設定qmake的環境變數:

$ export PATH="/home/zjl/Qt5.5.1/5.5/gcc_64/bin":$PATH
  • 1

github:fcitx/fcitx-qt5下載原始碼:

$ cd work/
$ git clone https://github.com/fcitx/fcitx-qt5
  • 1
  • 2

開始編譯:

$ cd work/fcitx-qt5/
$ cmake .
$ make
$ sudo make install
  • 1
  • 2
  • 3
  • 4
  • 這時候會發現一個關於ECM的報錯:
CMake Error at CMakeLists.txt:8 (find_package):
  Could not find a package configuration file provided by "ECM" (requested
  version 1.4.0) with any of the following names:
    ECMConfig.cmake
    ecm-config.cmake
  Add the installation prefix of "ECM" to CMAKE_PREFIX_PATH or set "ECM_DIR"
  to a directory containing one of the above files.  If "ECM" provides a
  separate development package or SDK, be sure it has been installed.
-- Configuring incomplete, errors occurred!
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

到這個頁面 https://launchpad.net/ubuntu/+source/extra-cmake-modules/1.4.0-0ubuntu1 下載 extra-cmake-modules_1.4.0.orig.tar.xz

解壓後編譯安裝:

$ cd work/extra-cmake-modules-1.4.0/
$ cmake .
$ make
$ sudo make install
  • 1
  • 2
  • 3
  • 4
  • 如果有如下報錯
CMake Error at /home/lieefu/Qt5.5.0/5.5/gcc_64/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:9 (message):
  Failed to find "GL/gl.h" in "/usr/include/libdrm".
  • 1
  • 2

安裝如下包:

$ sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev
  • 1

如有如下報錯:

CMake Warning at tests/CMakeLists.txt:28 (find_package):
  Could not find a package configuration file provided by "Qt5LinguistTools"
  with any of the following names:

    Qt5LinguistToolsConfig.cmake
    qt5linguisttools-config.cmake

  Add the installation prefix of "Qt5LinguistTools" to CMAKE_PREFIX_PATH or
  set "Qt5LinguistTools_DIR" to a directory containing one of the above
  files.  If "Qt5LinguistTools" provides a separate development package or
  SDK, be sure it has been installed.


-- Looking for Sphinx Documentation Builder...
-- Sphinx Documentation Builder not found - documentation will not be built (see http://sphinx-doc.org/)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

按照報錯提示將Qt5LinguistTools所在路徑新增到環境變數CMAKE_PREFIX_PATH:

$ export CMAKE_PREFIX_PATH="/home/siat/Qt5.5.1/5.5/gcc_64/lib/cmake"
  • 1
  • 關於XKBCommon的報錯
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.26") 
-- Could NOT find XKBCommon_XKBCommon (missing:  XKBCommon_XKBCommon_LIBRARY XKBCommon_XKBCommon_INCLUDE_DIR) 
CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:108 (message):
  Could NOT find XKBCommon (missing: XKBCommon_LIBRARIES XKBCommon) (Required
  is at least version "0.5.0")
  • 1
  • 2
  • 3
  • 4
  • 5

解決辦法是安裝如下軟體包:

$ sudo apt-get install bison
$ cd work/
$ wget http://xkbcommon.org/download/libxkbcommon-0.5.0.tar.xz
$ tar xf libxkbcommon-0.5.0.tar.xz
$ cd libxkbcommon-0.5.0/
$ ./configure --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --disable-x11
$ make
$ sudo make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

這裡需要注意的是lieefu的部落格./configure 後面帶引數的時候格式寫錯了,引數字首是-- 而不是,另外執行./configure 需要cd libxkbcommon-0.5.0/ 資料夾。

裝完上面這些之後再重新回到fcitx-qt5進行編譯

$ cd work/fcitx-qt5/
$ cmake .
$ make
$ sudo make install
  • 1
  • 2
  • 3
  • 4

最終我們需要的libfcitxplatforminputcontextplugin.so 檔案在/work/fcitx-qt5/platforminputcontext

三、替換libfcitxplatforminputcontextplugin.so 檔案

接下來我們只需要將libfcitxplatforminputcontextplugin.so 複製到Qt5.5.1/Tools/QtCreator/bin/plugins/platforminputcontexts/ 和 Qt5.5.1/5.5/gcc_64/plugins/platforminputcontexts/ 即可。

為了方便操作,我們將libfcitxplatforminputcontextplugin.so 檔案複製到主資料夾~/下,然後執行如下命令

$ cd Qt5.5.1/Tools/QtCreator/bin/plugins/platforminputcontexts/
$ sudo rm libfcitxplatforminputcontextplugin.so 
$ sudo cp ~/libfcitxplatforminputcontextplugin.so .
$ sudo chmod +x libfcitxplatforminputcontextplugin.so 


$ cd Qt5.5.1/5.5/gcc_64/plugins/platforminputcontexts/
$ sudo rm libfcitxplatforminputcontextplugin.so 
$ cp ~/libfcitxplatforminputcontextplugin.so .
$ sudo chmod +x libfcitxplatforminputcontextplugin.so 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

注意不要漏掉了cp命令末尾的. 號,rm 命令是為了刪除舊的libfcitxplatforminputcontextplugin.so ,另外還需要注意根據自己的Qt安裝路徑和版本確定platforminputcontexts 資料夾的路徑

替換檔案之後重新開啟Qt就可以在裡面Ctrl+空格切換搜狗中文輸入法了

如果切換搜狗輸入法之後還是無法輸入中文就重啟一下電腦(不知道為啥,博主的筆記本就是這類幹啥都要重啟或重開的,另一臺臺式機不過改啥改完之後不需要重啟立馬就能用,真是憂傷)