首页 > 解决方案 > Python tkinter 中的新输入字段

问题描述

我一直在尝试使用 tkinter 创建一个 python 程序,您可以通过按一个按钮在其中添加两个字段。然后在按下按钮后,代码将获取这两个字段并将它们放入一个变量中。它还有两个标题,它们会根据它是什么数字字段而动态更改,并且每次都放在下面。

我将如何创建一个执行此操作的按钮。到目前为止,我的输入字段代码是:

from tkinter import * #Import the Tkinter module
from tkinter import messagebox #Imports the message box module
from tkinter import font #Imports fonts from tkinter

count = 2

master = Tk() #Tkinter

Label(master, text="Title", font=("Helvetica", 20, "bold underline")).grid(row=0) 
Label(master, text="Subtitle 1", font=("Helvetica", 17, "bold underline")).grid(row=2) 
Label(master, text="Entry Title 1a").grid(row=3)
Label(master, text="Entry Title 1b").grid(row=4)

entry1 = Entry(master) #Entry Fields
entry2 = Entry(master)
entry1.grid(row=3, column=1) #Puts Entry fields in a certain location
entry2.grid(row=4, column=1) # ^


Label(master, text="Subtitle 2", font=("Helvetica", 17, "bold underline")).grid(row=5)
Label(master, text="Entry title 2a").grid(row=6)
q1=Label(master, text="Entry title 2b").grid(row=7)
entry3 = Entry(master) #Entry Fields
entry4 = Entry(master)

entry3.grid(row=6, column=1)
entry4.grid(row=7, column=1)

提前致谢!

标签: pythontkinter

解决方案


据我所知,您想知道如何使用输入字段中的值进行计算。

你这样做的方法是使用.get()函数。例如entry1.get()获取entry1字段中输入的值。

我使用您的代码创建了一个如何执行此操作的示例:

(编辑)我更改了按钮的功能以创建新的条目字段,以访问这些条目字段我将条目字段添加到列表中,您可以从此列表中访问条目。

from tkinter import * #Import the Tkinter module
from tkinter import messagebox #Imports the message box module
from tkinter import font #Imports fonts from tkinter

count = 2

master = Tk() #Tkinter

Label(master, text="Title", font=("Helvetica", 20, "bold underline")).grid(row=0)
Label(master, text="Subtitle 1", font=("Helvetica", 17, "bold underline")).grid(row=2)
Label(master, text="Entry Title 1a").grid(row=3)
Label(master, text="Entry Title 1b").grid(row=4)

entry1 = Entry(master) #Entry Fields
entry2 = Entry(master)
entry1.grid(row=3, column=1) #Puts Entry fields in a certain location
entry2.grid(row=4, column=1) # ^


Label(master, text="Subtitle 2", font=("Helvetica", 17, "bold underline")).grid(row=5)
Label(master, text="Entry title 2a").grid(row=6)
q1=Label(master, text="Entry title 2b").grid(row=7)
entry3 = Entry(master) #Entry Fields
entry4 = Entry(master)

entry3.grid(row=6, column=1)
entry4.grid(row=7, column=1)

button1 = Button(master, text="Button 1", bg="snow", command=lambda: create_entry())
button1.grid(row=8, column=0, columnspan=2)

global row_count, entries
row_count = 9
entries = []


def create_entry():
    global row_count, entries
    temp_entry = Entry(master)
    temp_entry.grid(row=row_count, column=1)
    entries.append(temp_entry)
    Label(master, text="Entry title " + str(row_count)).grid(row=row_count)
    row_count += 1

def entries_multiplied():
    value = 1
    global entries
    for entry in entries:
        value *= int(entry.get()) if entry.get() != "" else 1
    return value


master.mainloop()

推荐阅读