去年,因為工作的原因,需要編寫一個在統信UOS下使用的工具,買了本QT的書,現學現寫~
尴尬的是,QT需要使用root權限運行(sudo qtcreator),才能輸出調試信息(qDebug),而在sudo調用之後,卻無法呼出中文輸入法。。
想要輸入中文,要麼在其它程序中打好字複制過來,要麼切換到普通權限,普通權限下又看不了調試信息。。
被折磨了幾天後,受不了了,我決定把它解決!
百度一番後,并沒有找到解決方法,但也得到了一些啟示,最終搞定。。
本文所使用的操作系統:統信UOS專業版1050
操作之前,需要先打開開發者模式,本文略過
另外,建議删除UOS自帶的“中文輸入法”,安裝第三方輸入法!
按下Ctrl Alt T打開終端,輸入命令:
sudo deepin-editor /etc/profile
輸入正确的話,文本編輯器會打開profile文件,如圖:
鼠标滾動到文件末尾,添加如下代碼:
export GTK_IM_MODULE=fcitx
export QT4_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export CLUTTER_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export QT5_IM_MODULE=fcitx
添加之後如圖:
按下ctrl s保存後,關閉文本編輯器
在終端中,輸入命令:
sudo deepin-editor /etc/sudoers
輸入正确的話,如圖:
在上圖中可以看到三條Defaults開頭的語句,在其下方加入兩句代碼:
Defaults env_keep = "COLORTERM LANGUAGE XAUTHORITY LANG LS_COLORS TERM DISPLAY"
Defaults env_keep = "GTK_IM_MODULE QT4_IM_MODULE XMODIFIERS CLUTTER_IM_MODULE QT_IM_MODULE QT5_IM_MODULE"
第一句代碼是添加sudo的默認環境變量,第二句是輸入法變量。
當然,你也可以把這兩句的變量内容合并寫成一句。
這兩句代碼的作用,是在使用sudo命令時,保留這些變量!
修改完成後,如圖:
按下ctrl s保存,關閉文本編輯器,然後重啟一下電腦。
打開終端,輸入命令:
sudo fcitx
此時,會在右下角出現兩個外形不一樣的輸入法圖标,如圖:
左邊那個大一些的,就是使用 sudo 命令運行的輸入法管理器。
此時,再使用 sudo 命令去調用其它程序以後,那個程序就可以輸入中文了!
可以打開文本編輯器測試一下:
sudo deepin-editor
sudo 調用的程序不能使用中文輸入法,原因并不複雜,就兩點:
1、缺少相關的環境變量
2、沒有sudo環境下的輸入法管理器(fcitx)
這個方法,并不局限于統信UOS,大多數的Linux應該都大同小異。
需要注意的是:其它Linux中,并沒有 deepin-editor 這個文本編輯器!它們的文本編輯器,可能是gedit、pluma等等。。
一些Linux的輸入法管理器,也不是fcitx,可能是ibus或者其它。。
原創文章,轉載請注明出處!
skyyx2002 2022.06.07
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!