您尚未登录。

#1 2022-06-12 20:26:19

tanloong
会员
注册时间: 2021-08-15
帖子: 28

[已解决] 在 tkinter 创建的输入框中无法切换为中文输入

1. 背景 (如果有帮助的话)

我正在写一个查看五笔拆字图解的脚本。我打算把它绑定到 dwm 的快捷键,这样当我摁下快捷键,就可以弹出输入框,输入要查询的汉字,脚本会爬取这个字的拆字图解,保存为本地图片并打开。结果我发现 fcitx5 在 tkinter 创建的文本框里无法切换为中文输入,只能输入英文。

2. 实际表现

在 tkinter 创建的文本框中,摁设定好的输入法切换键 Ctrl+Space 无法切换输入法,在系统托盘右键 fcitx5 图标来选择中文输入也无效。

3. 期望表现

在 tkinter 创建的文本框中,可以将 fcitx5 切换为中文输入

4. 最小工作示例

#!/usr/bin/env python3
def get_char():
    import tkinter as tk
    from tkinter import simpledialog
    root = tk.Tk()
    root.withdraw()
    title=""
    prompt = "输入一个汉字"
    char = simpledialog.askstring(title=title, prompt=prompt, initialvalue='')
    return char
x = get_char()
print(x)

5. 版本和环境信息

platform:           Arch Linux
fcitx5 version:    5.0.17
tkinter version:  8.6
Python version: 3.10.5
tk version:          8.6.12-1
tcl version:         8.6.12-3

 $ cat /etc/environment ↵
GTK_IM_MODULE=fcitx 
QT_IM_MODULE=fcitx 
XMODIFIERS=@im=fcitx 
INPUT_METHOD=fcitx 
SDL_IM_MODULE=fcitx 
GLFW_IM_MODULE=ibus
 $ pacman -Qsq 'fcitx5-.*' ↵
fcitx5 
fcitx5-chinese-addons 
fcitx5-configtool 
fcitx5-gtk 
fcitx5-material-color 
fcitx5-pinyin-zhwiki 
fcitx5-qt

fcitx5-diagnose 输出结果

最近编辑记录 tanloong (2022-11-17 14:02:29)

离线

#2 2022-06-13 00:12:19

tanloong
会员
注册时间: 2021-08-15
帖子: 28

Re: [已解决] 在 tkinter 创建的输入框中无法切换为中文输入

我卸载掉 fcitx5,安装 fcitx-sunpinyin,问题仍然存在,这好像不是 fcitx5 的问题。
在 Python 3.8 环境里运行 MWE,问题仍然存在。

我再探索一下……

离线

#3 2022-06-13 01:28:28

tanloong
会员
注册时间: 2021-08-15
帖子: 28

Re: [已解决] 在 tkinter 创建的输入框中无法切换为中文输入

我发现在 pyqt5 创建的文本框里可以切换中文输入,所以用 pyqt5 代替了 tkinter,虽然没有解决这个帖子提出的问题,但脚本可以正常运行了👌。

最近编辑记录 tanloong (2022-06-13 01:39:34)

离线

#4 2022-06-13 09:46:15

csslayer
会员
注册时间: 2011-09-06
帖子: 21

Re: [已解决] 在 tkinter 创建的输入框中无法切换为中文输入

Wfam4xy.png

测试可以,多半是你 XIM 配置有问题。

建议看看 https://wiki.archlinux.org/title/Fcitx5 和 fcitx5-diagnose 的输出。

最近编辑记录 csslayer (2022-06-13 09:46:58)

离线

页脚