【问题标题】:Python: Pygame installs but doesn't run well, if at all. (Mac, Mojave)Python:Pygame 安装但运行不佳,如果有的话。 (麦克,莫哈韦)
【发布时间】:2019-10-15 14:43:30
【问题描述】:

我一直试图让 pygame 在 tkinter 中工作,但我得到的只是两个单独的窗口,其他人都说它可以工作:https://stackoverflow.com/a/16550818/12221209

但是当我运行基本的 pygame 代码时,我得到的只是码头上一个弹跳的宇宙飞船图标 - 与终端中的外星人演示相同。任何人都知道如何解决这个问题,因为它让我发疯。我想要的只是 tkinter 窗口中的 pygame 窗口。

import pygame
import tkinter as tkinter
from tkinter import *

(width, height) = (300, 200)
screen = pygame.display.set_mode((width, height))
pygame.display.flip()

running = True
while running:
  for event in pygame.event.get():
    if event.type == pygame.QUIT:
      running = False

【问题讨论】:

  • 第一个问题是您要导入 tkinter 两次。删除from tkinter *。顺便说一句,import tkinter as tkinterimport tkinter 完全相同。因此,为了缩短 tkinter 的使用时间,您可以使用 import tkinter as tk,因此您使用的所有前缀都可以是 tk.
  • 在查看了您引用的帖子后,我想说该帖子有很多问题。至少有 5 个主要问题和一些较小的问题。您可能想要遵循不同的示例。也就是说,您的代码示例甚至没有以任何方式使用 tkinter。你有一个我们可以看的可测试的例子吗?

标签: python python-3.x tkinter pygame


【解决方案1】:

我想要的只是 tkinter 窗口中的 pygame 窗口。

我已经使用了您引用的代码并对其进行了一些清理,以更好地适应 Python 3 和 PEP8。

直到你用一个例子来更新你的问题来显示你所描述的问题,这是我能为你做的最好的问题。

如果您有任何问题,请告诉我。

import tkinter as tk
import pygame
import os


def pygame_update_loop():
    pygame.display.update()
    # Use an after loop to update the pygame window.
    # set the time in milliseconds as desired.
    root.after(100, pygame_update_loop)


def draw():
    pygame.draw.circle(screen, (0, 0, 0), (250, 250), 125)


root = tk.Tk()

pygame_frame = tk.Frame(root, width=500, height=500)
pygame_frame.pack(side='left')
tk.Button(root, text='Draw',  command=draw).pack(side='left')

os.environ['SDL_WINDOWID'] = str(pygame_frame.winfo_id())
os.environ['SDL_VIDEODRIVER'] = 'windib'

width, height = 300, 200
screen = pygame.display.set_mode((width, height))
screen.fill(pygame.Color(255, 255, 255))
pygame.display.init()
pygame_update_loop()
root.mainloop()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-27
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 2019-04-16
    • 2017-04-10
    • 1970-01-01
    相关资源
    最近更新 更多