2017-03-04 29 views
0

我试图用一个GtkGLArea使用此代码创建一个三维可视化工具:在gtk3 Python中没有glcontext为gtkglarea

import gi 
gi.require_version('Gtk', '3.0') 
from gi.repository import Gtk, GdkPixbuf, Gdk 
import os, sys 

UI_FILE = "src/pygtk_gtkglarea.ui" 

class GUI: 
    def __init__(self): 

     self.builder = Gtk.Builder() 
     self.builder.add_from_file(UI_FILE) 
     self.builder.connect_signals(self) 

     gl_area = Gtk.GLArea() 
     gl_area.connect('render', self.area_render) 
     box = self.builder.get_object('box1') 
     box.pack_end(gl_area, True, True, 0) 

     window = self.builder.get_object('window') 
     window.show_all() 

    def area_render(self, gl_area, gl_context): 
     print gl_area 
     print gl_context 
     return True 

    def on_window_destroy(self, window): 
     Gtk.main_quit() 

def main(): 
    app = GUI() 
    Gtk.main() 

if __name__ == "__main__": 
    sys.exit(main()) 

和UI文件:

<?xml version="1.0" encoding="UTF-8"?> 
<!-- Generated with glade 3.18.3 --> 
<interface> 
    <requires lib="gtk+" version="3.0"/> 
    <object class="GtkWindow" id="window"> 
    <property name="visible">True</property> 
    <property name="can_focus">False</property> 
    <property name="title" translatable="yes">window</property> 
    <property name="default_width">500</property> 
    <property name="default_height">400</property> 
    <signal name="destroy" handler="on_window_destroy" swapped="no"/> 
    <child> 
     <object class="GtkBox" id="box1"> 
     <property name="visible">True</property> 
     <property name="can_focus">False</property> 
     <property name="orientation">vertical</property> 
     <child> 
      <placeholder/> 
     </child> 
     </object> 
    </child> 
    </object> 
</interface> 

然而,当我运行该应用程序显示一个带有文本的窗口无法在其中创建GL上下文。有什么建议么?

回答

0

所以我通过谷歌搜索找到了答案无法创建GL上下文。看来大多数人有这个错误是运行旧硬件。所以我尝试了我的新电脑(我不喜欢)。瞧!现在我得到一个可行的窗口。

+2

您至少需要GTK + 3.20才能为传统GL上下文提供回退支持。 – ebassi

相关问题