首页 > 解决方案 > 在 Jupyter 笔记本中内联显示 TkInter 输出

问题描述

我正在尝试使用 TkInter 库在 Python 中创建一个简单的实时绘图应用程序,我需要它将内联显示为 Jupyter 笔记本输出,而不是在新窗口中显示。到目前为止,我的测试应用程序完全符合我的需要,但是当我在 Jupyter IPython 中运行它时,tkinter 会打开一个新窗口:

 from tkinter import *
 import time

root = Tk()
root.title = "Laser Drawing"
root.resizable(0,0)
root.wm_attributes("-topmost", 1)
centerX = 100
centerY = 100
radius = 2
resolution = [1280, 720]

canvas = Canvas(root, width=resolution[0], height=resolution[1], bd=0, highlightthickness=0)
canvas.pack()

def drawCircle():
    circle = canvas.create_oval(centerX-radius, centerY+radius, centerX+radius, centerY-radius, fill="red", outline="red")

for i in range (0, 1000):
    drawCircle()
    root.update()
    time.sleep(0.01)
    centerX+=1
    centerY+=1

有什么方法可以使 tkinter 生成的输出显示 inline,而无需打开新窗口?或者,我可以考虑使用哪些库来创建类似的内联显示交互式绘图程序?我试过使用 Jupyter 的 javascript/HTML 魔法,它确实显示了一个画布内联,但我希望能够在 Python 中实现这一点。

标签: pythontkinteripythonjupyter

解决方案


推荐阅读