python - 无法显示使用 python 在 GUI 中输入的所有信息
问题描述
我正在创建一个具有两种不同类型的信息输入的 GUI。一个是复选框,另一个是输入字段。我想让显示按钮显示两个输入,但我似乎无法让它在一个按钮中工作。我可以将其更改为显示其中一个。我不确定从同一个按钮显示两个输入我做错了什么。这是我拥有的代码。现在它将显示输入字段信息,而不是复选框
import tkinter as tk
from tkinter import *
def show_entry_fields():
print("First Name: %s\nLast Name: %s\nPhone Number: %s"% (e1.get(),e2.get(), e3.get()))
master = tk.Tk()
master.title("Personal Info")
Label(master, text="Your gender:").grid(row=0,column=0, sticky=W)
var1 = IntVar()
Checkbutton(master, text="male", variable=var1).grid(row=0, column=1, sticky=W)
var2 = IntVar()
Checkbutton(master, text="female", variable=var2).grid(row=0, column = 2, sticky=W)
tk.Label(master, text="First Name").grid(row=1, pady=3)
tk.Label(master, text="Last Name").grid(row=2, pady=3)
tk.Label(master, text="Phone Number").grid(row=3, pady=3)
e1 = tk.Entry(master)
e2 = tk.Entry(master)
e3 = tk.Entry(master)
e1.grid(row=1, column=1, pady=3)
e2.grid(row=2, column=1, pady=3)
e3.grid(row=3, column=1, pady=3)
tk.Button(master, text='Quit', fg="red", command=master.quit).grid(row=4,column=0, sticky=tk.E, pady=10)
tk.Button(master, text='Show', fg="blue", command=show_entry_fields).grid(row=4, column=1, sticky=tk.W, padx=50, pady=10)
tk.mainloop()
解决方案
如果您只想获得一个输出(男性或女性),这是带有性别输入的逻辑..那么您必须使用RadioButton
notCheckButton
所以你的代码将是这样的:
import tkinter as tk
from tkinter import *
def show_entry_fields():
print("First Name: %s\nLast Name: %s\nPhone Number: %s\n gender: %s"% (e1.get(),e2.get(), e3.get(), var1.get()))
master = tk.Tk()
master.title("Personal Info")
Label(master, text="Your gender:").grid(row=0,column=0, sticky=W)
var1 = StringVar()
Radiobutton(master, text="male", variable=var1, value="male").grid(row=0, column=1, sticky=W)
Radiobutton(master, text="female", variable=var1, value="female").grid(row=0, column = 2, sticky=W)
tk.Label(master, text="First Name").grid(row=1, pady=3)
tk.Label(master, text="Last Name").grid(row=2, pady=3)
tk.Label(master, text="Phone Number").grid(row=3, pady=3)
e1 = tk.Entry(master)
e2 = tk.Entry(master)
e3 = tk.Entry(master)
e1.grid(row=1, column=1, pady=3)
e2.grid(row=2, column=1, pady=3)
e3.grid(row=3, column=1, pady=3)
tk.Button(master, text='Quit', fg="red", command=master.quit).grid(row=4,column=0, sticky=tk.E, pady=10)
tk.Button(master, text='Show', fg="blue", command=show_entry_fields).grid(row=4, column=1, sticky=tk.W, padx=50, pady=10)
tk.mainloop()
但是假设您有一个选项列表,例如首选语言,并且您想获得用户选择的确切输出..在这种情况下,您应该使用ListBox
你需要知道的ListBox
一切
推荐阅读
- symfony - Doctrine Symfony ManyToMany 将表作为 OneToMany 连接到其他表
- android - 如何在android studio中的背景图像上添加按钮和其他元素
- python - AWS EMR 上的 pyspark 提交命令
- javascript - 为什么我不能使用 RSASSA-PKCS1-v1_5 加密/解密?
- wordpress - Word Press 根文件夹重定向
- angular - 获取路由上的查询参数,Angular 服务器端渲染
- reactjs - 在 react-datepicker 中设置时间为 00:00:00
- magnolia - 如何创建年份选择器下拉菜单
- typescript - Use typescript type in yup schema
- flutter - 选中时如何在芯片上画出轮廓?