tkinter dan pygame tidak ingin bekerja dalam satu jendela [duplikat]

Saya ingin membuat aplikasi dan ingin menggunakan tkinter sebagai GUI dan salah satu perpustakaan game sebagai Pyglet dan Pygame. Saya tidak menemukan info apa pun tentang menyematkan pyglet ke tkinter tetapi menemukan beberapa kode dengan tkinter dan pygame: Menyematkan jendela Pygame ke dalam bingkai Tkinter atau WxPython. Saya menggunakan python 3.7 dan berikut kode yang saya gunakan:

import pygame
import tkinter as tk
from tkinter import *
import os


root = tk.Tk()
embed = tk.Frame(root, width=500, height=500)
embed.grid(columnspan=600, rowspan=500)
embed.pack(side=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(0, 255, 255))
pygame.display.init()
pygame.display.update()


def draw():
    pygame.draw.circle(screen, (0, 0, 0), (250, 250), 125)
    pygame.display.update()
    button1 = Button(buttonwin, text='Draw', command=draw)
    button1.pack(side=LEFT)
    root.update()


while True:
    pygame.display.update()
    root.update()

Itu menciptakan 2 jendela ketika saya ingin membuat hanya satu. Apa yang salah? Terima kasih!


person crackanddie    schedule 15.01.2021    source sumber
comment
Saya pikir jawaban yang Anda tautkan adalah untuk python2. Mengapa Anda ingin melakukan ini, pygame tidak terlalu sulit untuk membuat gui   -  person Rolv Apneseth    schedule 15.01.2021
comment
Ini tidak berfungsi di pygame 2.x. Gunakan pygame 1.9.x sebagai gantinya.   -  person acw1668    schedule 15.01.2021
comment
@RolvApneseth Saya punya alasan untuk hanya menggunakan tkinter. Ada kotak teks di tkinter seingat saya di mana Anda dapat menyorot teks dan mengubah warnanya   -  person crackanddie    schedule 15.01.2021
comment
Saya tidak dapat menginstal pygame==1.9.6 menggunakan terminal dan pycharm. Seseorang memiliki masalah yang sama: stackoverflow.com/questions/50392215/. Tapi itu tidak membantu saya. Jadi saya masih mencoba menginstalnya :)   -  person crackanddie    schedule 15.01.2021
comment
acw1668 benar, lihat github.com/pygame/pygame/issues/1574   -  person sloth    schedule 15.01.2021
comment
@ kemalasan dan apa yang harus saya lakukan? :) Maaf, tapi saya benar-benar tidak mengerti. Masalahnya masih terbuka. Saya mencoba menginstal pygame 1.9.6 tetapi hanya terjadi kesalahan. Saya mencoba python 3.6.1, 3.7 dan 3.9 dan di mana pun saya tidak dapat menginstal pygame 1.9.x   -  person crackanddie    schedule 15.01.2021
comment
Kesalahan apa saat Anda mencoba menginstal pygame 1.9.6? Lebih baik gunakan Python 3.8 karena 1.9.6 tidak memiliki paket bawaan untuk Python 3.9.   -  person acw1668    schedule 15.01.2021
comment
tidak mungkin memuat keduanya dalam satu jendela.   -  person    schedule 15.01.2021
comment
@acw1668 EOFError terjadi. Dan mengapa lebih baik menggunakan 3.8 padahal saya mencoba 3.6 dan 3.7? Dan saya akan membuka pertanyaan baru tentang stackoverflow karena ini adalah tema lain.   -  person crackanddie    schedule 15.01.2021
comment
Bagaimana Anda menginstal pygame? Aneh rasanya mendapatkan EOFError jika menggunakan pip install -U pygame==1.9.6. Menggunakan Python 3.6 dan 3.7 tidak masalah selama ada paket bawaan untuk versi tersebut. Saya tidak memiliki masalah dalam menginstal pygame 1.9.6 di Python 3.8 saya di Windows 10. Dan kodenya berfungsi dengan baik di lingkungan saya.   -  person acw1668    schedule 15.01.2021
comment
@ acw1668 oke, saya bisa mencobanya di 3.8. Saya membuka pertanyaan baru untuk masalah ini: stackoverflow.com/questions/65738380/   -  person crackanddie    schedule 15.01.2021
comment
@acw1668 di 3.8 juga tidak berfungsi, kesalahan yang sama   -  person crackanddie    schedule 15.01.2021


Jawaban (1)


Terima kasih kepada acw1668! Di sini Anda dapat mengunduh roda pygame 1.9.6: https://pypi.org/project/pygame/1.9.6/#files. Dan semuanya berfungsi dengan baik dengan python 3.8!

person crackanddie    schedule 15.01.2021