Python3 tkinter 使用中遇到的一个具体问题
我想做一个编码进制转换器,但是遇到了一些问题。就是我想在输入文字之后,立刻输出解码或者编码后的内容,就是输入与输出同步

我的代码如下
e = tk.Entry(self.initface)
e.pack()
def go(*args): # 处理事件,*args 表示可变参数
# e.delete(0, 'END')
# URL 解码
if comboxlist.get() == 'URL':
var = e.get()
t.insert('end',unquote(var))
# base64 解码
if comboxlist.get() == 'Base64':
var = e.get()
t.insert('end',base64.b16decode(var))
# 将转换成 16 进制
if comboxlist.get() == 'Hex':
var = e.get()
t.delete(1.0,'end')
t.insert('end',hex(int(var)))
# 将转换成 8 进制
if comboxlist.get() == 'Octal':
var = e.get()
t.insert('end',oct(var))
# 将转换成 2 进制
if comboxlist.get() == 'Binary':
var = e.get()
t.insert('end',bin(var))
comvalue = tk.StringVar() # 窗体自带的文本,新建一个值
comboxlist = ttk.Combobox(self.initface, textvariable=comvalue, state='readonly') # 初始化
comboxlist["values"] = ('Decode as', "URL", "Base64", "Hex", "Octal",'Binary')
comboxlist.current(0) # 选择第一个
comboxlist.bind("<<ComboboxSelected>>", go) # 绑定事件,(下拉列表框被选中时,绑定 go()函数)
comboxlist.pack()
t = tk.Text(self.initface,height = 4)
t.pack()
类似这样的,但这个是 java 的代码

请问各位师傅该如何做到这样的效果
Python3 tkinter 使用中遇到的一个具体问题
8 回复
我记得 tkinter 好像是没有 entry 的 textchanged 事件,提供一个蠢思路:
把键盘的全部按键都监听一下,回调到同一个函数;用回调函数更新 stringvar 的值,这样大体能够实现。
我无法理解你的问题
谢谢你!!我已经解决了,感谢提供思路
早日放弃 tkinter,改用 pyqt
tk 写一些小工具还是很方便的,而且毕竟开箱即用,打包体积比 qt 也小一些,个人觉得还是不错的。
tkinter 查个资料太费劲
您怎么解决的呀,用多线程吗
代码贴在上面了

