使用python显示GUI中输入的所有信息时遇到问题

使用python显示GUI中输入的所有信息时遇到问题,python,user-interface,button,tkinter,Python,User Interface,Button,Tkinter,我正在创建一个GUI,在输入信息时有两种不同的类型。一个是复选框,另一个是输入字段。我想让show按钮同时显示两个输入,但我似乎无法使它在一个按钮中工作。我可以将其更改为显示一个或另一个。我不确定在同一个按钮上显示两个输入时我做错了什么。这是我的代码。现在,它将显示输入字段信息,而不是复选框 import tkinter as tk from tkinter import * def show_entry_fields(): print("First Name: %s\nLast N

我正在创建一个GUI,在输入信息时有两种不同的类型。一个是复选框,另一个是输入字段。我想让show按钮同时显示两个输入,但我似乎无法使它在一个按钮中工作。我可以将其更改为显示一个或另一个。我不确定在同一个按钮上显示两个输入时我做错了什么。这是我的代码。现在,它将显示输入字段信息,而不是复选框

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()

如果你只想得到一个输出(男性或女性),这就是这里的逻辑和性别输入。。然后您必须使用
单选按钮
而不是
检查按钮

因此,您的代码如下所示:

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

使用
var1.get()
,您需要了解的所有信息是什么?看起来您甚至没有试图显示复选按钮的值。如果您可以将其更改为显示一个或另一个,为什么不将这两个解决方案合并为一个函数?