当前位置: 首页 > 知识库问答 >
问题:

TKInter覆盖文本

蓝夕
2023-03-14

我在学KINTER我有点困惑。下面的代码显示了face_recogniton()函数中的白色文本。

import tkinter as tk
from PIL import Image, ImageTk
from facerec_on_raspberry_pi import face_function #face_function() return recognized person name

root = tk.Tk()

#Fullscreen
root.overrideredirect(True)
root.overrideredirect(False)
root.attributes('-fullscreen',True)
root.configure(background='black')

def my_mainloop():
    print (face_function())
    instructions = tk.Label(root, text=str(face_function()), font=('Raleway', 55), fg='white', bg='black')
    instructions.place(x=160, y=60)
    root.after(1, my_mainloop)

root.after(1, my_mainloop)

root.mainloop()

但文本重叠了。在显示新文本之前,如何清除它?

共有1个答案

暴乐邦
2023-03-14

您不需要在每次需要更改文本时重新创建标签。创建后可以更改现有标签的文本。还要注意我评论的两行:你不需要两者。

import tkinter as tk
from PIL import Image, ImageTk
from facerec_on_raspberry_pi import face_function #face_function() return recognized person name

root = tk.Tk()

#Fullscreen
root.overrideredirect(True) # Use only one of this two lines: 
root.overrideredirect(False) # you just set a flag and then change it
root.attributes('-fullscreen',True)
root.configure(background='black')

instructions = tk.Label(root, text='', font=('Raleway', 55), fg='white', bg='black')
instructions.place(x=160, y=60)

def my_mainloop():
    print (face_function())
    instructions['text'] = str(face_function())    
    root.after(1, my_mainloop)

root.after(1, my_mainloop)

root.mainloop()
 类似资料:
  • 文件已经存在,您可以覆盖它 (“是”按钮),跳过 (“否”按钮),重命名,全部重命名 ,覆盖全部文件 (“全部皆是” 按钮),跳过全部已存在的文件 (“全部皆否”按钮) 或取消 当前的操作。 如果您选择了全部重命名 模式,重命名文件将得到象 'filename(N).txt' 的名字,'filename.txt' 的位置是原始的文件名, 'N' 是数字。

  • 问题内容: 这个: 在html中调用,例如: 向div元素添加一个字符串。正是我想要的。但是,这: 这样称呼: 似乎正在覆盖我的整个html文件。即,当我在Firefox中运行它时,它仅显示字符串(即页面的全部内容),但页面似乎仍在加载(FF的加载图标仍在进行动画显示,显然是无限的)。 首先,这将仅在本地,离线使用,作为呈现数据的快速便捷方式(使用html + js和网络浏览器而不是纯文本文件)。

  • 问题内容: 我们很少有扩展基本类的类。我们注意到我们使用了“退出一些睡眠”方法,并且希望在发生睡眠时进行记录。有没有一种方法可以覆盖Thread.sleep方法,在其中我可以添加一些自定义逻辑(即记录),然后仅调用实际的Thread.sleep()?这样,我就不必更改在我的基类中使用Thread.sleep的所有位置。我也愿意接受其他选择。 问题答案: 您不能重写方法,因为它是本机方法,所以无法对

  • 我正在开发一个Spring集成/引导应用程序。我正在使用一个多文档(src/main/Resources/application.yml)来设置几个配置类的默认值(用@ConfigurationProperties注释)。pplicaiton.yml带有默认值,其中一些需要被覆盖,具体取决于环境。 我可以在目录中使用Java系统属性(-D...=...)、Spring“属性”(--...=...)

  • 问题内容: 我试图在php中覆盖我的位置,但是我仍然在php.ini文件中获得了2 mb的值。 问题答案: 通过进行设置时,这些设置不会有任何效果。 原因是PHP 在 执行脚本 之前 需要这些值。上载时,将在完成上载后执行目标脚本,因此PHP需要事先知道最大大小。 在,虚拟主机配置或文件中进行设置。一个典型的文件如下所示:

  • 问题内容: 我的Java应用程序引用了一个使用log4j日志记录的第三方jar文件。问题是该jar包含自己的log4j.properties文件,这会导致我的机器上的访问被拒绝的异常,但是我无法控制jar文件来更改其内容。 我尝试在应用程序的类路径中添加自己的log4j.properties文件,但似乎没有效果。如果我尝试使用PropertyConfigurator以编程方式导入自己的设置,则lo