Для получения событий Pygame окно / дисплей Pygame должно быть инициализировано.
"Очередь ввода сильно зависит от модуля дисплея Pygame. Если отображение не было инициализировано ирежим видео не установлен, очередь событий не будет работать ". Документация по событиям Pygame .
Однако, если вы хотите использовать tkinter с pygame, вы можете встроить окно pygame в окно tkinter.Это, однако, даст только события Pygame при использовании встроенного окна.Вот пример из другого вопроса :
import pygame
import tkinter as tk
from tkinter import *
import os
root = tk.Tk()
embed = tk.Frame(root, width = 500, height = 500) #creates embed frame for pygame window
embed.grid(columnspan = (600), rowspan = 500) # Adds grid
embed.pack(side = LEFT) #packs window to the left
buttonwin = tk.Frame(root, width = 75, height = 500)
buttonwin.pack(side = LEFT)
os.environ['SDL_WINDOWID'] = str(embed.winfo_id())
os.environ['SDL_VIDEODRIVER'] = 'windib'
screen = pygame.display.set_mode((500,500))
screen.fill(pygame.Color(255,255,255))
pygame.display.init()
pygame.display.update()
while True:
for event in pygame.event.get():
print(event)
pygame.display.update()
root.update()
Если вы ищете способ получения событий при использовании виджетов tkinter, вы можете настроить привязки в tkinter.Больше информации на этой ссылке