我正在开展一个项目,要求我构建一个具有高要求图形显示的Tkinter UI。
经过几次试验后,我决定使用pyOpenGL(Togl)进行图形渲染。 请注意,由于性能问题,我决定在C ++中运行OpenGL,而不是在Python中使用pyOpenGL包装器。
我的问题是,看起来像是Togl在display.tcl中无法识别我从Tkinter发送的wid。相反,display.tcl将创建一个以给定wid命名的新Togl小部件。
有人可以帮我吗?
此外,使用Tkinter UI进行高要求的图形显示是否有更好的方法。
在Tkinter UI中:
from Tkinter import *
import Tkinter as tk
class Layout(ttk.Frame):
def __init__(self, *args, **kwargs):
self.Frame = tk.Frame(self, relief=tk.RAISED, container = "True")
self.Frame.grid()
top = Toplevel(use=self.Frame.winfo_id())
self.display = tk.Tk()
self.display.tk.eval("source {/path/display.tcl}')
self.display.tk.eval('setup ' + str(top.winfo_pathname(top.winfo_id())) )
在display.tcl
中load [file dirname [info script]]/display[info sharedlibextension]
proc setup {wid}
{
display $wid
}
proc newRot {wid}
{
togl $wid -width 200 -height 200 -rgba true -double true -depth true
pack $wid -expand true -fill both
}