资深Bug工程师 2021-12-29 21:37 采纳率: 55.6%
浏览 38
已结题

python tkinter button分别输入的问题

用tkinter button创建了6个数字键盘用来输入,如何实现用这6个button给左边的三个entry输入框输入数字?要求给其中一个输入框的时候其他两个输入框不输入。

img

import tkinter as tk
from tkinter import ttk


win = tk.Tk()
win.title('配方计算系统')
win.geometry('600x350+400+200')
x = tk.Label(win, text='请输入增减量:')
x.grid(row=0, column=0)
xx = tk.Entry(win).grid(row=0, column=1, columnspan=5)
zz = tk.Entry(win).grid(row=1, column=1, columnspan=5)
cc = tk.Entry(win).grid(row=2, column=1, columnspan=5)
aj1 = tk.Button(win, text='1',  width=3, height=2, font=1)
aj1.grid(row=3, column=7, ipadx=5)
aj2 = tk.Button(win, text='2', width=3, height=2, font=1)
aj2.grid(row=3, column=8, ipadx=5)
aj3 = tk.Button(win, text='3', width=3, height=2, font=1)
aj3.grid(row=3, column=9, ipadx=5)
aj4 = tk.Button(win, text='4', width=3, height=2, font=1)
aj4.grid(row=4, column=7, ipadx=5)
aj5 = tk.Button(win, text='5', width=3, height=2, font=1)
aj5.grid(row=4, column=8, ipadx=5)
aj6 = tk.Button(win, text='6', width=3, height=2, font=1)
aj6.grid(row=4, column=9, ipadx=5)
win.mainloop()
  • 写回答

1条回答 默认 最新

  • soar3033 2021-12-29 22:57
    关注

    弄好了 ,请采纳,不懂问我

    
    import tkinter as tk
    from tkinter import ttk
    
    f=0
     
    win = tk.Tk()
    win.title('配方计算系统')
    win.geometry('600x350+400+200')
    x = tk.Label(win, text='请输入增减量:')
    x.grid(row=0, column=0)
    
    def focus1(event):
        global f
        f=1
    def focus2(event):
        global f
        f=2
    def focus3(event):
        global f
        f=3
    xx = tk.Entry(win)
    xx.bind('<FocusIn>', focus1)
    xx.grid(row=0, column=1, columnspan=5)
    zz = tk.Entry(win)
    zz.bind('<FocusIn>', focus2)
    zz.grid(row=1, column=1, columnspan=5)
    cc = tk.Entry(win)
    cc.bind('<FocusIn>', focus3)
    cc.grid(row=2, column=1, columnspan=5)
    print(f)
    def but(n):
        n=str(n)
        global f
        if f==1:
            print(1)
            t=len(xx.get())
            xx.insert(t , n)
        if f==2:
            print(2)
            t=len(zz.get())
            zz.insert(t,n)
        if f==3:
            print(3)
            t=len(cc.get())
            cc.insert(t,n)
            
    aj1 = tk.Button(win, text='1',  width=3, height=2, font=1,command=lambda:but(1))
    aj1.grid(row=3, column=7, ipadx=5)
    aj2 = tk.Button(win, text='2', width=3, height=2, font=1,command=lambda:but(2))
    aj2.grid(row=3, column=8, ipadx=5)
    aj3 = tk.Button(win, text='3', width=3, height=2, font=1,command=lambda:but(3))
    aj3.grid(row=3, column=9, ipadx=5)
    aj4 = tk.Button(win, text='4', width=3, height=2, font=1,command=lambda:but(4))
    aj4.grid(row=4, column=7, ipadx=5)
    aj5 = tk.Button(win, text='5', width=3, height=2, font=1,command=lambda:but(5))
    aj5.grid(row=4, column=8, ipadx=5)
    aj6 = tk.Button(win, text='6', width=3, height=2, font=1,command=lambda:but(6))
    aj6.grid(row=4, column=9, ipadx=5)
    win.mainloop()
    
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月6日
  • 已采纳回答 12月29日
  • 赞助了问题酬金 12月29日
  • 创建了问题 12月29日

悬赏问题

  • ¥15 matlab中使用gurobi时报错
  • ¥15 WPF 大屏看板表格背景图片设置
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂