简体   繁体   English

Tkinter 按钮小部件

[英]Tkinter Button widget

few days ago i tried to create connect between sql.connector and tkinter but I noticed there is problem with Button widget and with command option, so i tried to create a simple program with tkinter without using mysql.connector but still there's problem with it , here is my code and Button widget does not work :几天前,我尝试在 sql.connector 和 tkinter 之间创建连接,但我注意到 Button 小部件和命令选项存在问题,因此我尝试在不使用 mysql.connector 的情况下使用 tkinter 创建一个简单的程序,但仍然存在问题,这是我的代码,按钮小部件不起作用:

from tkinter import *

win = Tk()

t1=IntVar()
t2=IntVar()

def adder():
    var1 = int(t1.get())
    var2 = int(t2.get())
    return var1 + var2

win.geometry("750x750")

l1 = Label(win , text = "Number 1").grid(row = 0 , column = 0)
e1 = Entry(win , textvariable = t1).grid(row = 0 , column = 1)

l2 = Label(win , text = "Number 2").grid(row = 1 , column = 0)
e2 = Entry(win , textvariable = t2).grid(row = 1 , column = 1)

do = adder

b1 = Button(win , text = "Adder" , command = do)
b1.grid(row = 2 , column = 2)

lb = Listbox(win)
lb.grid(row = 4 , column = 4)
lb.insert(1 , do())

win.mainloop()

and the problem is Button widget doesn't even show in window , why ?问题是 Button 小部件甚至没有显示在窗口中,为什么?

I copied and pasted the example code and the adder button did appear.我复制并粘贴了示例代码,确实出现了加法器按钮。 Removed the do = adder Modified the code to return the result to lb = Listbox(win) in the adder event handler.删除了do = adder修改了代码,将结果返回到 adder 事件处理程序中的lb = Listbox(win)

from tkinter import *

win = Tk()

t1 = IntVar()
t2 = IntVar()


def adder(): # Button command, that is event handler.
    var1 = int(t1.get())
    var2 = int(t2.get())
    lb.insert(1, var1 + var2)  # Place the update here in the event handler



win.geometry("750x750")

l1 = Label(win, text="Number 1").grid(row=0, column=0)
e1 = Entry(win, textvariable=t1).grid(row=0, column=1)

l2 = Label(win, text="Number 2").grid(row=1, column=0)
e2 = Entry(win, textvariable=t2).grid(row=1, column=1)


b1 = Button(win, text="Adder", command=adder) # make adder the event handler
b1.grid(row=2, column=2)

lb = Listbox(win)
lb.grid(row=4, column=4)
# lb.insert(1 , do()) # Update is handled in the adder event handler.
win.mainloop()

Instead of operator We can used Python sum() Function.我们可以使用 Python 的sum()函数来代替operator

 def adder():
     var1 = t1.get()
     var2 = t2.get()
     total = (var1, var2)
     lb.insert(1, sum(total))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM