Python 我能';t写入Tkinter文本小部件
我正在尝试制作一个带有按钮的GUI界面,用于发送员工的每日报告。我已经走得很远了,但我现在完全被卡住了,我能够创建按钮和其他所有东西,但我似乎无法将其写入Tkinter文本小部件。 这是剧本-Python 我能';t写入Tkinter文本小部件,python,user-interface,tkinter,Python,User Interface,Tkinter,我正在尝试制作一个带有按钮的GUI界面,用于发送员工的每日报告。我已经走得很远了,但我现在完全被卡住了,我能够创建按钮和其他所有东西,但我似乎无法将其写入Tkinter文本小部件。 这是剧本- from tkinter import* import random import time; import sys root = Tk() root.geometry("1600x800+0+0") root.title("Report system") text_Input = StringVar
from tkinter import*
import random
import time;
import sys
root = Tk()
root.geometry("1600x800+0+0")
root.title("Report system")
text_Input = StringVar()
ADD = "0"
Tops = Frame(root, width = 1600,height = 700, relief=SUNKEN)
Tops.pack(side=TOP)
f1 = Frame(root, width = 650,height = 700, relief=SUNKEN)
f1.pack(side=RIGHT)
f2 = Frame(root, width = 950,height = 700, relief=SUNKEN)
f2.pack(side=LEFT)
#======================Time==================================================
localtime=time.asctime(time.localtime(time.time()))
#============================Info============================================
TitleH = Label(Tops, font=('arial', 60, 'bold'),text="COMPANY", fg="blue4",bd=10, anchor='w')
TitleH.configure(background = "powder blue")
TitleH.grid(row=0, column=0)
TitleT = Label(Tops, font=('arial', 60, 'bold'),text=localtime, fg="blue4",bd=10, anchor='w')
TitleT.configure(background = "powder blue")
TitleT.grid(row=1, column=0)
#==========================Buttondef=======================
def btnClick(PrimeOperator):
global operator
operator = str(PrimeOperator)
text_Input.set(PrimeOperator)
textDisplay = Entry(f2, font=('arial', 20, 'bold'), textvariable=text_Input, bd=30, insertwidth=4,
bg="powder blue", justify='center')
textDisplay.grid(columnspan=4)
#============================text===========================================
statusDisplay = Text(f1, font=('arial', 20, 'bold'), bd=60, width = 30, height = 10,
bg="powder blue")
statusDisplay.grid(columnspan=4)
btnadd=Button(f2,padx=16,pady=16,bd=8, fg="black", font=("arial",20,'bold'),
text="add", bg="powder blue", command=lambda: statusDisplay.insert(INSERT, 'text_input').grid(row=4,column=2))
#===================OPERATOR=================================
btnop19=Button(f2,padx=16,pady=16,bd=8, fg="black", font= ("arial",20,'bold'),
text="OpTH19", bg="powder blue", command=lambda: btnClick("OpTH19")).grid(row=2,column=0)
btnop18=Button(f2,padx=16,pady=16,bd=8, fg="black", font=("arial",20,'bold'),
text="OpTH18", bg="powder blue", command=lambda:
btnClick("OpTH18")).grid(row=2,column=1)
btnop8=Button(f2,padx=16,pady=16,bd=8, fg="black", font=("arial",20,'bold'),
text="OpTH08", bg="powder blue", command=lambda:
btnClick("OpTH8")).grid(row=2,column=2)
btnop7=Button(f2,padx=16,pady=16,bd=8, fg="black", font=("arial",20,'bold'),
text="OpTH07", bg="powder blue", command=lambda:
btnClick("OpTH7")).grid(row=3,column=0)
btnop5=Button(f2,padx=16,pady=16,bd=8, fg="black", font=("arial",20,'bold'),
text="OpTH05", bg="powder blue", command=lambda:
btnClick("OpTH5")).grid(row=3,column=1)
btnop4=Button(f2,padx=16,pady=16,bd=8, fg="black", font=("arial",20,'bold'),
text="OpTH04", bg="powder blue", command=lambda:
btnClick("OpTH4")).grid(row=3,column=2)
btnop3=Button(f2,padx=16,pady=16,bd=8, fg="black", font=("arial",20,'bold'),
text="OpTH03", bg="powder blue", command=lambda: btnClick("OpTH3")).grid(row=4,column=1)
#=================================status======================================
btnontime=Button(f2,padx=16,pady=16,bd=8, fg="black", font= ("arial",20,'bold'),
text="On time", bg="powder blue", command=lambda: btnClick("On Time")).grid(row=2,column=3)
btnlate=Button(f2,padx=16,pady=16,bd=8, fg="black", font=("arial",20,'bold'),
text="Is Late", bg="powder blue", command=lambda: btnClick("Late")).grid(row=3,column=3)
btnonleave=Button(f2,padx=16,pady=16,bd=8, fg="black", font= ("arial",20,'bold'),
text="On leave", bg="powder blue", command=lambda: btnClick("On leave")).grid(row=4,column=3)
#=================================Print=======================================
btnadd=Button(f2,padx=16,pady=16,bd=8, fg="black", font=("arial",20,'bold'),
text="add", bg="powder blue",
command='C').grid(row=4,column=2)
root.mainloop()
基本上我会先点击ontime,然后我想点击add,这样它会把ontime添加到左侧,这是一个Tkinter文本。然后,我将单击准时到达的op,并单击每个op的添加。因此,我希望它看起来像:
ontime opth3 opth4等。。etc.为添加按钮编写一个函数来调用,而不是“C”。例如:
def addfunction(event=None):
statusDisplay.insert(END, operator)
您还需要一些验证代码,以确保全局变量运算符没有未定义或类型错误。另外,跟踪哪些操作已经被记录,这样您就不会多次记录操作
附加说明:
确保全局变量运算符未定义的最简单方法是在首次使用它之前设置正确类型的默认值
operator = ''
否则,您可以使用if type(operator)=str检查字符串的变量类型。其他类型的语法相同。用于检查变量是否存在
可以使用try
子句
至于跟踪输入,我真的不确定你到底想要什么。这也是你必须花一些时间思考的问题。让我举一个例子:
statusDisplay
中的输出是否应该用空格、制表符、逗号分隔?如果“准时”出现在一行中的第一位,这很重要还是无关紧要?多行结果可以吗?我希望“准时”和“迟到”出现在同一行吗。结果是您将发送到另一个程序或函数或可能保存到文件中的内容;他们想要什么格式
当您决定了一种行为后,编写代码并查看输出是否符合您的要求就容易多了
另外:首先尝试自己实现它,如果它不起作用,欢迎您寻求进一步的帮助。在你这么做之前:阅读文档和谷歌的解决方案 多么没用的标题!所以问题是从条目中获取文本并将其添加到文本小部件?换句话说,99%的代码与问题无关,可以/应该删除:(Biffen你是说我的线程的标题还是我的代码的标题,因为它是公司的名称,所以我更改了它,但它是我的线程标题,然后我为你感到难过,因为你觉得它没有用。谢谢你帮助编辑我的问题的人。我仍然是新手,还在学习,才开始编写python一周左右。谢谢你这个团队对我帮助很大,我还是新手,如果你能解释一下验证代码和其他东西,因为我不知道它们是什么,但无论如何你还是很好地解决了我的问题谢谢你。谢谢你向我解释,我会试着写它,对于状态显示,我希望它看起来像这样:很好早上,我们已经开始上早班(上午11点到晚上7点)。今天的员工是5个人。他们的ID是-op_THU th19,op_THU th14,op_THU th12,op_THU THU th15,op_THU th24。迟到的ID是-休假ID-这是我每天复制粘贴并向群聊报告的txt。我只是想这样做,这样我就不必不断更换操作员(员工)谁每天都来,我也希望更多。所以是的,它将在单独的线上。