如何在Tkinter框架下打包Togl小部件(使用Tcl脚本)?

时间:2014-03-11 22:16:16

标签: tkinter tcl pyopengl

我正在开展一个项目,要求我构建一个具有高要求图形显示的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
}

0 个答案:

没有答案