繁体   English   中英

使用交互式 ipython 笔记本运行 Tkinter

[英]Running Tkinter with interactive ipython notebook

我想创建一个交互式 python 编码游戏,用户可以在其中将命令输入到 jupyter notebook 并在 GUI 上实时查看结果。 这似乎在常规 python 交互式 shell 中工作正常。 我让它运行的方式如下:

  1. 我创建了一个文件,我们将其命名为example.py ,代码如下:
import tkinter as tk


def create_canvas():
    root = tk.Tk()
    root.resizable(False, False)
    root.title("Karel")
    frame = tk.Frame(root)
    frame.pack()
    canvas = tk.Canvas(frame, bg="white", width=500, 
        height=500)
    canvas.pack()
    return canvas


def create_oval(canvas):
    return canvas.create_oval(150, 150, 155, 155, fill='#000')



def move(canvas, oval):
    canvas.move(oval, 0, -50)
  1. 然后在交互式 python shell 中我执行以下操作:
>> import example
>> canvas = example.create_canvas()
>> oval = example.create_oval(canvas)

但是,当我尝试在 ipython 中使用它时,我没有看到 GUI(我假设这是因为我没有执行 tkinters mainloop函数)。 但是如果我确实执行了mainloop ,那么我就不能再让用户输入交互式 python shell。

所以我的问题是,我如何让 ipython(所以我可以使用 jupyter 笔记本)表现得像 python 并在不阻止来自控制台的用户输入的情况下显示 GUI?

[编辑]:我想出了如何用 ipython 做到这一点。 我必须输入ipython --gui 'tk'但如何将 ipython 选项传递给 jupyter 笔记本服务器,以便我可以在笔记本中完成所有这些操作?

好吧,我想通了。

关键是将行: %gui tk放在笔记本的开头。 这与 ipython 的--gui 'tk选项类似。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM