【问题】快捷输入在Python的Tkinter控件-编辑框中输入行为异常,输入;()后回车要么只有1半括号,要么无输入但把光标弄跑了
-
1. 问题简述:
在使用Tkinter界面库生成的窗口应用中,编辑框的输入行为存在异常
2. 软件版本:
清风:0.121.2
Python:3.13.1 (这个关系应该不大,只要是Python3应该就能复现)3. 系统版本:
Windows 10
4. 软件配置:
应该与软件配置不相关


5. 操作步骤:
- 打Tkinter界面应用
- 在单行编辑框中使用“;”引导符进入快捷输入模式,并输入一对括号“()”
- 在多行编辑框中使用“;”引导符进入快捷输入模式,并输入一对括号“()”
6. 期望效果:
- 在单行编辑框中可以正常输入括号()
- 在多行编辑框中可以正常输入括号()
7. 实际效果:
- 单行编辑框中输入一对括号,只剩下1边括号。
- 多行编辑框中输入一对括号,一个括号都没有输入,光标还跑到行尾了。

8. 附录
8.1 复现步骤
- 确保本机安装有
Python 3.13(或更高版本) - 将Demo源码保存到本地(UTF-8格式),文件名如:
test.py - 打开DOS窗口,执行
python .\test.py命令打开窗口
8.2 参考代码
import tkinter as tk from tkinter import ttk, filedialog class DemoUI: def __init__(self, root): self.root = root self.root.title("界面原型") # 第1行:文件路径 + 浏览按钮 row1 = ttk.Frame(root) row1.pack(fill=tk.X, padx=8, pady=4) self.file_path_var = tk.StringVar() ttk.Entry(row1, textvariable=self.file_path_var).pack(side=tk.LEFT, fill=tk.X, expand=True) ttk.Button(row1, text="浏览", command=self.on_browse).pack(side=tk.LEFT, padx=(4,0)) # 第2行:多行日志编辑框 row2 = ttk.Frame(root) row2.pack(fill=tk.BOTH, expand=True, padx=8, pady=4) self.log_text = tk.Text(row2) scroll = ttk.Scrollbar(row2, command=self.log_text.yview) self.log_text.config(yscrollcommand=scroll.set) self.log_text.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) scroll.pack(side=tk.RIGHT, fill=tk.Y) # 第3行:退出按钮 row3 = ttk.Frame(root) row3.pack(fill=tk.X, padx=8, pady=4) ttk.Button(row3, text="退出", command=root.quit).pack() def on_browse(self): fp = filedialog.askopenfilename() if fp: self.file_path_var.set(fp) self.log_text.insert(tk.END, f"已选择文件:{fp}\n") self.log_text.see(tk.END) if __name__ == "__main__": root = tk.Tk() app = DemoUI(root) root.mainloop() -
-
-
-
-
-
-
-

做为对比,搜狗五笔测试相同场景没有问题,可以正常输入。
搜狗五笔正常

