我在使用python应用程序时遇到了麻烦。
我已经开设了一些课程让我的工作变得更轻松,你可以全部检查in this Github repo。
我的主要课程是:
from UI import *
window = Window(Size(1000, 700), "WiSync", "logo.png")
button1 = Button(Size(50, 30), Position(10, 10), UIThemes.light)
window.add(button1)
window.start()
它没有给我任何错误,但它只是没有画出任何东西。我知道所有的数据都没问题,因为在我的抽屉课上我有一个print()
电话:
def draw_rect(zone: Zone, color: Color, window: pygame.Surface):
print("Drawing rect " + zone.to_string() + " with color " + color.to_string())
pygame.draw.rect(window, color.get(), zone.get())
在我的应用循环中,有一条连续的消息:Drawing rect Zone(10, 10, 60, 40) with color flat_light_sea_blue
,但它不会在屏幕上显示任何内容。
很抱歉,如果我还不够清楚,但我是西班牙语,这很难解释。如果您有任何其他疑问,请询问。
感谢您的帮助,您很棒;)
答案 0 :(得分:2)
问题是您没有在代码中的任何位置调用pygame.display.update()
。
你确实正在绘制这些Rect
,但除非这条线位于你的主赛事循环/主游戏循环中,否则它们将不会出现在你的显示器上。
解决此问题:
pygame.display.update()
。在你的回购中,我看了UI.py。在__main_loop
类的Window
方法中,当然不需要行pygame.display.update()
。
这是固定代码:
def __main_loop(self):
while self.running:
# Draw all the elements
for element in self.elements:
element.draw()
for event in pygame.event.get():
if event.type is pygame.QUIT:
self.running = False
pygame.display.update()
我希望这个答案对您有所帮助,如果您有任何其他问题,请随时在下面发表评论!