首页 > 系统相关 >Linux切换账户(或ssh远程)执行QT程序无法输入中文

Linux切换账户(或ssh远程)执行QT程序无法输入中文

时间:2022-11-20 22:56:35浏览次数:37  
标签:中文 QT testProgram fcitx ssh Linux 输入 user01

系统:

  银河麒麟

前提条件:

  已经安装了 fcitx 插件,因为QTcreator本身不支持中文输入,需要插件支持;

场景1:

  一台计算机;使用普通用户(例如:user01)登录并打包一个可以执行的QT程序(我使用的是QT 5.6.3),程序中至少有一个文本输入框用于测试,其它UI组件随意;打开user01的终端,使用 ./ 执行打包好的程序(例如:testProgram),可以正常输入中文,此时在打开一个user01终端,并且使用 sudo su 切换为root用户,然后在使用 ./ 来执行testProgram,会发现文本输入框输入不了中文(已经切换到了中文输入);

场景2:

  两台计算机;A机是场景1中的计算机;在B机上使用普通用户user02登录,打开一个终端,使用 ssh [email protected] 连接上A机,进入到testProgram目录,使用 ./ 执行testProgram,也会出现文本框输入不了中文的情况;

 

解决方案(不是唯一):

在场景1的情况下:

引起该问题的主要原因是环境变量的改变引起的,主要有三个环境变量,使用 env | grep QT  和 env | grep XM 可以查看:

① QT4_IM_MODULE = fcitx 

② QT_IM_MODULE = fcitx 

③ XMODIFIERS = @im = fcitx 

当从user01切换到root时,环境变量①②的值会从 fcitx 变为 xim,此现象就是导致无法输入中文的主要原因;可以创建一个 test.sh 脚本,内容为:

 

#$!bin/bash
export DISPLAY = :0  #用来防止出现 cloud not connect to display 的错误;

export QT_IM_MODULE = fcitx  # 经过测试,只用修改这个环境变量即可;

#fcitx start   #重启fcitx插件,先注释掉,若此脚本不行,在重启fcitx试试;

./path/testProgram  # path是有testProgram可执行文件的路径;

 

后续使用 test.sh 脚本执行那个QT程序即可;

场景2的问题也是只需要执行 test.sh 脚本即可。

 

标签:中文,QT,testProgram,fcitx,ssh,Linux,输入,user01
From: https://www.cnblogs.com/rookieB/p/16901863.html

相关文章

  • LINUX命令
      ls-a列出当前目录下的所有文件,包括以.头的隐含文件(如~/.bashrc)ls–l列出当前目录下文件的详细信息2.pwd查看当前所在目录的绝对路经3.cd目录之间的移......
  • pyqt5图形化界面程序打包成exe可执行文件
    1.pipinstallpyinstaller2.打开命令行目录转到项目的所在目录下  3.打包主程序文件  pyinstaller-F-wmain.py。当前目录下会生成build,dist文件夹和main.spe......
  • vs+qt静态编译环境配置
    一、简述Qt官方提供二进制安装包+vs开发环境默认只能通过动态编译。可以通过Qt提供工具Windeployqt把相关qt依赖dll复制到当前目录(但是会有windows系统提供dll不能关联,所以......
  • 简单linux-sudo密码劫持脚本
    简单linux-sudo密码劫持脚本#!/bin/bashswhoami=`whoami`if[[!-f"/tmp/..."]];then swhoami=`whoami` read-s-p"[sudo]passwordfor$swhoami:"passwd ......
  • Linux 使用 iptables 禁止某些 IP 访问
    在Linux服务器被攻击的时候,有的时候会有几个主力IP。如果能拒绝掉这几个IP的攻击的话,会大大减轻服务器的压力,说不定服务器就能恢复正常了。在Linux下封停IP,有封杀网段和封......
  • linux vim 复制粘贴代码
    将光标移动到复制的起始位置,按一下大写V或小写v,(大写V是整行,小写是光标处),然后上下左右将光标移动到复制的末尾,然后按下y,移动到要粘贴的位置,按下大写P或小写p(大写P:光标之前......
  • SecureCRT远程连接linux
    现在我们使用远程工具进行登录,SecureCRT显示......
  • Zabbix监控Linux主机
    1、监控Linux主机1.1、在需要被监控的Linux服务器上安装zabbix-agent以及配置zabbix服务我在ubuntu20.04的版本apt安装zabbix5.0LTS这篇文章中实现了,这里我就基于上篇文章......
  • Ubuntu防止被SSH暴力破解的几点措施
    目录​​错误禁登fail2ban​​​​修改SSH端口​​​​禁止root远程登录​​​​禁止使用空白密码的用户访问​​​​使用 SSH 版本 2​​​​关闭 TCP 端口转发和 X1......
  • QEMU调试Linux系统的USB协议栈
    QEMU调试Linux系统的USB协议栈通过使用QEMU调试Linux系统的USB协议栈来学习USB协议栈。mingdu.zhengatgmaildotcom安装QEMUsudoapt-getinstallqemu-system-i386启动......