资深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日

悬赏问题

  • ¥50 hyper默认的default switch
  • ¥15 网站打不开,提示502 Bad Gateway
  • ¥20 基于MATLAB的绝热压缩空气储能系统代码咨询
  • ¥15 R语言建立随机森林模型出现的问题
  • ¥20 unity内置语言切换的按钮设置
  • ¥15 中级微观经济学,生产可能性边界问题
  • ¥15 TCP传输时不同网卡传输用时差异过大
  • ¥15 请各位看看我写的属于什么算法,或者有更正确的写法?
  • ¥15 html5 qrcode 扫描器
  • ¥15 爬取网页信息并保存需要完整代码