【问题标题】:Python Tkinter Submit buttonPython Tkinter 提交按钮
【发布时间】:2020-06-19 02:36:08
【问题描述】:

我创建了某种 surver whitch 收集有关工作的数据并在提交按钮下保存答案。我停留在提交按钮上。如何在这个按钮下保存所有数据。

非常感谢您的帮助。

这只是代码的一部分,有 2 个问题:

import tkinter as tk
from tkinter import *
from tkinter import ttk
from tkinter.ttk import *
import win32com.client 

root = tk.Tk()
v = tk.IntVar()

tk.Label(root, text="Full Name").grid(row=0, column = 0)
tk.Entry(root).grid(row=0, column = 1)

tk.Label(root, text="Employy Number").grid(row=1, column = 0)
tk.Entry(root).grid(row=1, column = 1)

tk.Label(root,text="IF you requide for extra training please tick the box.", justify = tk.LEFT, padx = 20).grid(row=6, column = 0)
var1 = IntVar()
Checkbutton(root, text="APR", variable=var1).grid(row=7, column = 0)
var2 = IntVar()
Checkbutton(root, text="THS", variable=var2).grid(row=8, column = 0)
var3 = IntVar()
Checkbutton(root, text="GOOD IN", variable=var3).grid(row=9, column = 0)
var4 = IntVar()
Checkbutton(root, text="DESPATCH", variable=var4).grid(row=10, column = 0)
var5 = IntVar()
Checkbutton(root, text="LLOP", variable=var5).grid(row=11, column = 0)
var6 = IntVar()
Checkbutton(root, text="REACH TRUCK", variable=var6).grid(row=12, column = 0)
var7 = IntVar()
Checkbutton(root, text="CBT", variable=var7).grid(row=13, column = 0)

tk.Label(root, text="If you have any additional comments about your current position, manager ar any thing else please share with us.").grid(row=14, column= 0)
e3 = tk.Entry(root)
e3.grid(row=15, column=0)

#Submit button
def callback():
    print ("I dont know what how collect all data under this button")
MyButton1 = Button(root, text="Submit", width=10, command=callback)
MyButton1.grid(row=16, column=0)

root.mainloop() 

【问题讨论】:

  • “在按钮下保存数据”是什么意思?您想将此数据保存在.txt 文件中吗?在变量中?
  • 调用那些全局IntVars的.get()方法来检索它们的内容。

标签: python tkinter submit survey


【解决方案1】:

这是一种获取Entries 中写入的内容以及检查Checkbuttons 并打印这些信息的方法(这就是您所说的“将信息保存在按钮中”的意思吗?)

对于Entry,您需要像e1 = tk.Entry(root) 这样为每个条目命名,然后将它们网格到第二行e1.grid(row=0, column = 1)

对于Checkbutton,可以查看关联变量的值:var1 == 1表示Checkbutton1被点击,var1 == 0表示未点击。

试试这个(在callback 中查看我的print 语句):

import tkinter as tk
from tkinter import *
from tkinter import ttk
from tkinter.ttk import *
# import win32com.client 

root = tk.Tk()
v = tk.IntVar()

tk.Label(root, text="Full Name").grid(row=0, column = 0)
e1 = tk.Entry(root)
e1.grid(row=0, column = 1)

tk.Label(root, text="Employy Number").grid(row=1, column = 0)
e2 = tk.Entry(root)
e2.grid(row=1, column = 1)

tk.Label(root,text="IF you requide for extra training please tick the box.", justify = tk.LEFT, padx = 20).grid(row=6, column = 0)
var1 = IntVar()
Checkbutton(root, text="APR", variable=var1).grid(row=7, column = 0)
var2 = IntVar()
Checkbutton(root, text="THS", variable=var2).grid(row=8, column = 0)
var3 = IntVar()
Checkbutton(root, text="GOOD IN", variable=var3).grid(row=9, column = 0)
var4 = IntVar()
Checkbutton(root, text="DESPATCH", variable=var4).grid(row=10, column = 0)
var5 = IntVar()
Checkbutton(root, text="LLOP", variable=var5).grid(row=11, column = 0)
var6 = IntVar()
Checkbutton(root, text="REACH TRUCK", variable=var6).grid(row=12, column = 0)
var7 = IntVar()
Checkbutton(root, text="CBT", variable=var7).grid(row=13, column = 0)

tk.Label(root, text="If you have any additional comments about your current position, manager ar any thing else please share with us.").grid(row=14, column= 0)
e3 = tk.Entry(root)
e3.grid(row=15, column=0)

#Submit button
def callback():
    print("e1.get()", e1.get())
    print("var1.get()", var1.get())
    print("var2.get()", var2.get())
    print("var3.get()", var3.get())
    print ("I dont know what how collect all data under this button")
MyButton1 = Button(root, text="Submit", width=10, command=callback)
MyButton1.grid(row=16, column=0)

root.mainloop()

【讨论】:

    猜你喜欢
    • 2021-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多