当前位置: 首页 > 知识库问答 >
问题:

使用Tkinter在Pygame中画一个圆

况胡媚
2023-03-14

使用另一个问题中的代码,我在tkinter窗口中嵌入了一个pygame窗口,我试图制作一个tkbutton,在pygame窗口上画一个圆圈,已经试验了一段时间,到目前为止还没有任何结果。任何想法都会很棒!这是我到目前为止的代码。。。

import Tkinter as tk
import os
import pygame as py

#         R   G  B
red =   (225, 0, 0)
green = (0, 255, 0)
w, h = 500, 200

p = False

def maketrue(p):
    p = True
    returnp

root = tk.Tk()
window = tk.Frame(root, width=w, height=h)
window.pack()

os.environ['SDL_WINDOWID'] = str(window.winfo_id())

root.update

py.display.init()
screen = py.display.set_mode((w, h))
screen.fill(py.Color(255, 0, 0))
drawbutton = tk.Button(root, text='Draw Circle', command = maketrue(p))
drawbutton.pack()

while True:
    if p == True:
        py.draw.circle(screen, red, (250, 50), 20)
        py.display.update()
    else:
        pass
    py.draw.circle(screen, green, (250, 100), 20)

    root.update()

共有1个答案

隆礼骞
2023-03-14

我想这么做已经有一段时间了,但是我现在有时间了,这是一些基本的代码,程序制作了一个tkinter窗口,然后在一个框架中嵌入了一个pyplay窗口,然后制作了另一个框架,并在窗口上放了一个按钮,当按下这个按钮时,调用一个函数,该函数告诉pyplay在pyplay窗口上画一个圆。

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()


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()
 类似资料:
  • 问题内容: 我想使用python3和tkinter创建一个虚拟的宠物风格游戏。到目前为止,我已经有了主窗口并开始放入标签,但是我遇到的问题是播放动画gif。我在这里搜索并找到了一些答案,但是他们不断抛出错误。我发现使用PhotoImage的结果具有gif的索引位置,并在一定范围内继续。 当我在终端中使用“ pyhton3 main.py”运行此命令时,出现以下错误: _tkinter.TclErr

  • 问题内容: 我正在尝试制作一个程序来使用Tkinter显示动画GIF。这是我最初使用的代码: test.gif是以下GIF: 这可以正常工作,但是GIF的质量很糟糕。我尝试将其更改为以下内容: 但是,这偶尔会闪烁图像。虽然图片看起来不错,但是作为程序却毫无用处。我究竟做错了什么? 问题答案: 首先,您要为每个帧创建一个新的画布对象。最终,您将有成千上万的图像相互叠加。这是非常低效的;当您开始具有数

  • 这是一个非常基本的程序,我想用它来制作两个移动的球,但实际上只有一个在移动。 我也尝试过一些变化,但无法让第二个球移动;另一个相关问题-一些人使用方法来实现这一点,而其他人则执行然后重新绘制。我应该使用哪一个?为什么? 这是我的代码,它只设置/移动一个球的动画:

  • 问题内容: 我正在编写一个程序,该程序需要在Tkinter窗口中显示视频流。由于还将有用于执行各种功能的按钮,因此我使用网格来组织一切。 以下代码是从“显示”网络摄像头序列TkInter修改而来的,在我的Raspberry Pi上可以正常工作: 但是,将其与Tkinter结合使用是行不通的。(在下面的内容中,我尝试注释掉Display 1,Display 2和都不显示。) 如何显示视频? 问题答案

  • 我曾尝试从链接中实现snake游戏教程,但在运行该链接后,屏幕立即关闭。py文件。我已经查找了屏幕立即关闭错误,并尝试通过添加运行块来修复它,但现在每当我尝试绘制矩形时,屏幕就会变黑。

  • 我试图在一个每3秒钟改变一次的窗口中随机显示目录中的图像。我还希望它是跨平台的,因为我正在Windows中开发,但它将在linux上运行。 目前,我有一个工作代码,它通过鼠标点击遍历目录的所有图像文件(代码如下) 然而,它这样做的方式是当鼠标点击窗口时,它调用一个函数来关闭小部件。 我遇到的问题是如何调用这个函数,或者在没有事件的情况下关闭小部件。有什么建议吗? 这就是我现在拥有的。这显然不起作用