繁体   English   中英

如何使 Python Tkinter 中的按钮可点击?

[英]How can I make my button in Python Tkinter clickable?

我正在尝试使用 Python 中的 Tkinter 创建一个反馈表。现在我正在写它以在单击提交按钮时如果名称条目为“”则显示一个消息框。 但是该按钮无法单击并被禁用。 我怎样才能解决这个问题?

# import all functions from the tkinter   
from tkinter import *
from tkinter import messagebox 
  
# import messagebox class from tkinter  
from tkinter import messagebox 
  
# Create a GUI window  
root = Tk()

# create a function to check input
def  check_input():
    if name_input == '':
        messagebox.showerror("please enter your name") 

# create the input entry
name_input = Entry(root)
age_input = Entry(root)
phone_input = Entry(root)
email_input = Entry(root)

# label  the input entry
name_label = Label(text="Username")
age_label = Label(text="Age")
phone_label = Label(text="Phone")
email_label = Label(text="Email")

# display the input entry
name_label.grid(row = 1,column = 1, padx = 10)
name_input.grid(row = 2,column = 1,padx = 10)

age_label.grid(row = 3,column = 1,padx = 10)
age_input.grid(row = 4,column = 1,padx = 10)

phone_label.grid(row = 5,column = 1,padx = 10)
phone_input.grid(row = 6,column = 1,padx = 10)

email_label.grid(row = 7,column = 1,padx = 10)
email_input.grid(row = 8,column = 1,padx = 10)

# create the submit button
submit_button = Button(root,text="Submit",command = check_input)

# display the submit button
submit_button.grid(row = 9,column = 1,padx = 10)

        
# Start the GUI   
root.mainloop()

您必须使用get()方法从条目中获取内容:

# create a function to check input
def  check_input():
    if name_input.get() == '':
        messagebox.showerror("please enter your name") 

[![测试显示没有错误][1]][1]

你的按钮是可点击的并且是可见的......你的要求可能还有其他问题但按钮有效[1]: https://i.stack.imgur.com/JQqH3.png

如果您想从文本框中获取值,则需要为条目设置文本变量,例如

ttk.Entry(win,textvariable=hexanum).grid(column=1,row=0)

那么如果你需要从文本框中获取值,你会做类似的事情

inhexa=(hexanum.get()) #hexanum is the textvariable associated to entry/textbox 
                       #inhexa is a variable in which the value from get function is stored (if need to store)

做你的功课:)随时问

暂无
暂无

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

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