2017-03-04 30 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

相關問題