Python中的Tkinter OpenGL上下文
Posted
技术标签:
【中文标题】Python中的Tkinter OpenGL上下文【英文标题】:Tkinter OpenGL context in Python 【发布时间】:2012-08-04 09:41:46 【问题描述】:我需要在 Tkinker 中创建一个 OpenGL 上下文,以便将它与 PyOpenGL Python 模块一起使用。
Tkinker 本身并不支持 OpenGL 上下文,但我在 PyOpenGL 文档上找到了这个页面,解释了如何为此使用模块中包含的包装器: http://pyopengl.sourceforge.net/documentation/context/
我尝试运行提供的代码,但收到一条消息,提示找不到 TOGL 模块。 我从http://togl.sourceforge.net/ 下载了模块,但无法使用。
PS。我使用 virtualenv 在 Mac OS X 上使用 Python 3.2 进行了测试。
【问题讨论】:
TOGL 模块到底有什么问题?你收到错误了吗?如果是这样,请发布回溯。 是的,如果你能详细说明就好了。 只是猜测,但模块似乎已经过时了。也许运行 python 2.7 可以解决您的问题? 很抱歉没有发布代码并回复这么晚。我打算再试一次,但在 PyOpenGL 文档中找不到关于将它与 Tkinter 一起使用的信息(他们只是说它受支持)。我最初粘贴的链接不再有效。无论如何,我想不知道在哪里放置 togl 小部件,所以我可以再试一次,同时使用 Python 2.7 和 3.3。 【参考方案1】:PyOpenGL 为 Tk OpenGL 小部件 (Togl) 提供 Python 绑定,但不为 Togl 本身提供绑定,这就是您必须下载它的原因。现在,安装 Togl 很容易,但没有准备好执行任务的工具。由于 Python 绑定将使用 Tcl 来加载 Togl 模块,因此小部件需要位于 Tcl 的auto_path
中的一个目录中,这是 Tcl 查找加载库的地方。你可以做的是启动一个 Tcl 解释器,tclsh
,然后通过puts $auto_path
来检查这些目录。就我而言,我将目录lib/Togl2.0
(在Togl 的.tar.gz 中)复制到/opt/local/lib/tcl8.5
。您也可以扩展auto_path
来查找其他目录,但我不在这里介绍。
然后我在 Mac OSX 上使用 Python 2.7 进行了测试。执行import OpenGL.Tk
尝试加载Togl,太糟糕了,它失败了。原因是 Togl 是为 i386 预编译的,因为我将 Python 构建为通用二进制文件,我所做的只是将它作为 arch -i386 python2.7
运行,现在 import OpenGL.Tk
可以工作了。
【讨论】:
以上是关于Python中的Tkinter OpenGL上下文的主要内容,如果未能解决你的问题,请参考以下文章
Python中tkinter包如何提取文本框文字到函数之外?
如何更改文本框的大小,以便它可以使用tkinter和python在UI上水平扩展