实时更新python窗口



我正在寻找一种方法,在python中创建一个窗口,在那里我可以控制每个单独的像素。还有我可以使用函数实时更新它们的地方。我的目标是创建一个python包。所以这个想法是:

import package
app = package.main()
app.init() # This would create the window
app.set_pixel(0, 0, (255, 0, 0)) # And this would set the pixel with x = 0 and y = 0 to red

我尝试过PyGame和Tkinter,但它们都使用主循环,并且在循环启动后调用的所有函数都不会执行,除非关闭应用程序。

有没有办法做这样的事情,让一切都可以实时更新?

没有必要在主循环之外更新任何东西,您应该在循环本身内部运行您的函数-主循环意味着它正在实时运行。如果没有,屏幕就不会更新(这基本上是循环所做的主要事情——更新屏幕(。

您可以在Pygame中尝试以下操作:

import pygame as pg
pg.init()
WIDTH = 1300
HEIGHT = 900
screen = pg.display.set_mode((WIDTH, HEIGHT))
# mainloop
running = True
while running:
# event processing
for event in pg.event.get():
if event.type == pg.QUIT:
running = False
break
# drawing section
screen.set_at((1, 1), (255, 0, 0))
pg.display.flip()
pg.quit()

CCD_ 1函数是将特定像素设置为特定颜色的函数。

编辑:你可以编写一个名为display的模块,它有一个函数,接收你想在主循环中运行的函数并运行它

import display
def func(screen):
screen.set_at((1, 1), (255, 0, 0))
display.start(func)

最新更新