我正在创建一个计数器来计算当用户上传CSV文件时有多少个空单元格。我还使用treeview来显示CSV的内容。print("There are", emptyCells.sum(), "empty cells")
工作并将数字打印到控制台,但我想将其显示在标签中,以便用户可以在GUI中查看。它不显示任何内容,但在文件上传后,标签应该在"row"
中添加到应用程序中,因为所有内容都向下移动,但没有内容插入到标签中。
emptyCells = (df[df.columns] == " ").sum()
# print("There are", emptyCells.sum(), "empty cells")
tree.pack(side=BOTTOM, pady=50)
messagebox.showinfo("Success", "File Uploaded Successfully")
stringVariable = StringVar()
printVariable = ("There are", emptyCells.sum(), "empty cells")
#print(printVariable)
stringVariable.set(printVariable)
lbl = Label(windowFrame, textvariable=stringVariable, font=25)
lbl.pack()
根据您的问题,您要通过单击按钮更新您的tkinterlabel
。你可以这样做:
from tkinter import *
from tkinter import messagebox
root = Tk(className="button_click_label")
root.geometry("200x200")
messagebox.showinfo("Success","Test")
emptyCells = (df[df.columns] == " ").sum()
l1 = Label(root, text="Emptycells?")
def clickevent():
txt = "there are", emptyCells
l1.config(text=txt)
b1 = Button(root, text="clickhere", command=clickevent).pack()
l1.pack()
root.mainloop()
没有使用pandas
库进行测试,但应该可以为您工作!
标签显示,当我试图重现该问题时,tkinter标签的问题没有发生。原因一定在代码的其他地方。
我没有安装熊猫,所以我总结了一个列表。当我运行它时,它显示了一个带有两个标签的GUI。
import tkinter as tk
emptyCells = [ 1, 1, 1, 1, 1, 1, 1 ] # keep it simple.
windowFrame = tk.Tk()
old = tk.StringVar()
stringVariable = tk.StringVar()
old_print = ("There are", sum(emptyCells), "empty cells") # Returns a tuple
printVariable = "There are {} empty cells".format( sum(emptyCells) ) # Returns a string.
old.set( old_print )
stringVariable.set(printVariable)
lbl_old = tk.Label( windowFrame, textvariable = old )
lbl_old.pack()
lbl = tk.Label(windowFrame, textvariable=stringVariable, font=25)
lbl.pack()
windowFrame.mainloop()
当你运行它时,这个工作吗?它是否有助于识别代码中没有显示标签的问题?
您是否已经在emptyCells
变量中拥有所需的总和?为什么需要在print语句中再次使用.sum()函数?
printVariable = f"There are {emptyCells} empty cells"