使用Tkinter我试图添加用户输入的值并将其添加到文件中存在的值,但它不起作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Tkinter我试图添加用户输入的值并将其添加到文件中存在的值,但它不起作用相关的知识,希望对你有一定的参考价值。
我正在尝试为我的小型企业创建一个非常简单的忠诚度计划。这是我在Python或Tkinter中的第一个项目。
下面的#POINT ENTRY部分允许用户输入适当的点数。然后使用“addpoints”从文本文件(扩展名为“.cust”)中提取当前点,并添加用户输入的内容并将其写回文本文件。
不幸的是,它实际上只是用“。!Entry 26”取代整行。
任何指导将不胜感激。
#POINT ENTRY
pointlabel = Label(root, text="Enter Earned/Spent Points")
pointlabel.pack()
pointlabel.place(x = 46, y = 95)
pointenter = Entry(root, bg="#E9E9E9")
pointenter.config(font="bold")
pointenter.pack()
pointenter.place(x = 50, y = 120, height="30", width="140")
addbutton = Button(root, bg="green", fg="white", text=" + ", command=addpoints)
addbutton.config(font='bold')
addbutton.pack()
addbutton.place(x = 201, y = 118)
subbutton = Button(root, bg="red", text="-")
subbutton.config(font='bold')
subbutton.pack()
subbutton.place(x = 251, y = 118)
def addpoints():
file = open("assets\" + IDentry.get() + ".cust", 'r+')
currpts = file.read(0)
updatepoints = sum(currpts, pointenter)
file.write(str(updatepoints))
file.close()
答案
这是一个woking的例子:
尝试:
from tkinter import *
class App:
def __init__(self, root):
self.pointenter = Entry(root,font=(None, 14), width=50)
self.pointenter.pack()
addbutton = Button(root, bg="green", fg="white", text=" + ", command=self.addpoints)
addbutton.config(font='bold')
addbutton.pack()
def addpoints(self):
self.currpts = '50' # a string
print(float(self.currpts)+ float(self.pointenter.get()))
if __name__=='__main__':
root = Tk()
app = App(root)
root.mainloop()
我第一次开始时发现非常有用的一件事是对所有变量进行print()。希望这可以帮助。
另一答案
尝试使用.txt扩展名替换.cust扩展名。此外,这里有一些错误。
addpoints()
函数应该移到tkinter代码之上。它在代码的tkinter部分被调用,需要在调用之前定义它。
updatepoints = sum(currpts, pointenter)
应该成为:
updatepoints = int(currpts) + int(pointenter.get())
currpts
是一个字符串,需要将其转换为整数。 pointenter
是一个tkinter对象,你需要使用.get()
从中获取一个字符串。然后将其转换为整数。
此外,我会打开和关闭文件两次,一次读取,再次写入。否则,新数字将仅附加到文件中的现有文本而不是替换它。
这是一个例子:
file = open("examplefile.txt", "r")
currpts = file.read(1)
file.close()
print(currpts)
updatepoints = int(currpts) + int(pointenter.get())
print(updatepoints)
writefile = open("test3.txt", "w")
writefile.write(str(updatepoints))
writefile.close()
以上是关于使用Tkinter我试图添加用户输入的值并将其添加到文件中存在的值,但它不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Python tkinter 将画布保存为 postscript 并添加到 pdf
您如何获取用户的输入并将其添加到 iframe 中的 URL?