Python 3.x 如何使python程序变得轻巧,它被编写成直接在屏幕上打印文本,而无需窗口?

Python 3.x 如何使python程序变得轻巧,它被编写成直接在屏幕上打印文本,而无需窗口?,python-3.x,text,tkinter,screen,light,Python 3.x,Text,Tkinter,Screen,Light,从最近几天开始,我一直在编写一个程序,其中一部分是直接在窗口屏幕上显示文本,并根据需要进行更新/更改。我已经用python中的Tkinter模块完成了这一部分 问题是,每当我运行程序时,它的行为就像一个沉重的程序,因为其他进程会变慢。另外,如果我尝试并行执行其他过程,文本的背景将变为黑色,这是绝对不可取的 我还想显示一些动态符号,比如加载,但是使用两个Tkinter小部件会使加载速度变慢。如果可能,请使其更模块化和更轻 from tkinter import * import win32api,

从最近几天开始,我一直在编写一个程序,其中一部分是直接在窗口屏幕上显示文本,并根据需要进行更新/更改。我已经用python中的Tkinter模块完成了这一部分

问题是,每当我运行程序时,它的行为就像一个沉重的程序,因为其他进程会变慢。另外,如果我尝试并行执行其他过程,文本的背景将变为黑色,这是绝对不可取的

我还想显示一些动态符号,比如加载,但是使用两个Tkinter小部件会使加载速度变慢。如果可能,请使其更模块化和更轻

from tkinter import *
import win32api, win32con, pywintypes
from time import sleep

f=Tk()
var = StringVar()
var.set(' ')
f =Label(textvariable = var, font=('Cooper','60'), fg='blue', bg='white')
f.master.overrideredirect(True)
f.master.geometry("+900+200")
f.master.lift()
f.master.wm_attributes("-topmost", True)
f.master.wm_attributes("-disabled", True)
f.master.wm_attributes("-transparentcolor", "white")
f.pack()


for i in range(10):
    sleep(5) # Need this to slow the changes down
    var.set(u'[ A ]' if i%2 else u'[ B ]')
    f.update_idletasks()

另外,我想问一下,我们可以不使用Tkinter模块来完成它吗?这样它就变得更轻、更模块化了。依赖性也会减少

这是一个代码,它可以使您的代码响应速度更快,并且不会过度使用cpu

from tkinter import *
import win32api, win32con, pywintypes
import time

f=Tk()
var = StringVar()
var.set(' ')
f =Label(textvariable = var, font=('Cooper','60'), fg='blue', bg='white',bd=0)
f.master.overrideredirect(True)
f.master.geometry("+900+200")
f.master.lift()
f.master.wm_attributes("-topmost", True)
f.master.wm_attributes("-disabled", True)
f.master.wm_attributes("-transparentcolor", "white")
f.pack()


for i in range(10):
    f.update()
    t = time.time()
    while time.time() - t < 5:
        f.update()
    var.set(u'[ A ]' if i%2 else u'[ B ]')
    f.update_idletasks()
    f.update()
从tkinter导入*
导入win32api、win32con、pywintypes
导入时间
f=Tk()
var=StringVar()
变量集(“”)
f=标签(textvariable=var,font=('Cooper','60'),fg='blue',bg='white',bd=0)
f、 master.overrideredirect(真)
f、 主几何学(“+900+200”)
f、 主升降机()
f、 master.wm_属性(“-toppost”,True)
f、 master.wm_属性(“-disabled”,True)
f、 master.wm_属性(“透明色”、“白色”)
f、 包()
对于范围(10)内的i:
f、 更新()
t=time.time()
而time.time()-t<5:
f、 更新()
变量集(u'[A]'如果i%2其他u'[B]')
f、 更新_idletasks()
f、 更新()
下面是任务管理器的图像。它只占用
15 MB的内存,没有cpu:


您正在呼叫delay。所以它变慢了。我不是说更多的执行时间。我担心的是,每当我运行程序时,它都无法正常工作。感觉它正在减慢系统进程。我知道延迟函数是如何工作的@BlackThunder它没有响应吗?我已经添加了一个图像…请看…是的,它似乎会对任何运动都没有响应。对不起,我不擅长技术解释。我希望你能理解这个问题@BlackThreadorry…它在我的系统上工作,但每当我进行任何其他进程时,甚至右键单击…它都会失去响应…这是我要解决的主要问题。你能解释一下为什么while
time.time()-t<5:f.update()
工作
time.time()
以秒为单位给出当前时间,并减去
t
(未更新,是while循环之前捕获的时间)。如果输出超过五,则停止。
f.update()
更新接口。