如何将python tkinter窗口嵌入浏览器?

kha*_*han 5 python numpy tkinter matplotlib

好的..一个python程序的输出显示在一个Tkinter窗口中......它单独打开.我想要做的是在浏览器中嵌入此窗口.这是代码:

import numpy as np
import matplotlib
import matplotlib.cbook as cbook
import matplotlib.image as image
import matplotlib.pyplot as plt

datafile = cbook.get_sample_data('logo2.png', asfileobj=False)

print 'loading', datafile

im = image.imread(datafile)

im[:,:,-1] = 0.5  # set the alpha channel

fig = plt.figure()

ax = fig.add_subplot(111)

ax.plot(np.random.rand(20), '-o', ms=20, lw=2, alpha=0.7, mfc='orange')

ax.grid()

fig.figimage(im, 10, 10)

plt.show()
Run Code Online (Sandbox Code Playgroud)

考虑所有变量都是从浏览器表单字段给出的输入参数.请帮忙!!:-)

小智 6

基于Joe Kington对类似问题的回答,后端mplh5canvas可能正是您所寻找的.调整您的示例代码以使用它,

import numpy as np
import matplotlib
import mplh5canvas

matplotlib.use('module://mplh5canvas.backend_h5canvas')

import matplotlib.cbook as cbook
import matplotlib.image as image
import matplotlib.pyplot as plt


fig = plt.figure()

ax = fig.add_subplot(111)

ax.plot(np.random.rand(20), '-o', ms=20, lw=2, alpha=0.7, mfc='orange')

ax.grid()

plt.show(open_plot=True)
Run Code Online (Sandbox Code Playgroud)

它似乎与您正在寻找的那种交互性很好地协作,甚至允许动画.话虽如此,它并不支持每个浏览器,如其安装维基页面中所述.如果可以限制使用Chrome,Safari或Opera(在这种情况下使用某些配置,请检查该页面),那么它应该适合您,但也可能需要一些实验.