Python解释器,Pygtk和GtkGrid

时间:2014-01-15 21:15:59

标签: python gtk pygtk

我要使用GtkGrid,因为我需要为每个项目绘制一个矩形。 (我会在每个GtkGrid的单元格中添加一个绘图区域,并通过cairographics库绘制矩形)

但是有一个问题:python 2.7不支持GtkGrid,所以我浏览了网页,我只是更改了文件的第一行(并安装了python3.3)。

#!/usr/bin/python3.3

try:  
    import pygtk  
    pygtk.require("2.0")  
except:  
    print("PyGtk Not Availible")
    sys.exit(1)

try:  
    import gtk  
    import gtk.glade  
except:  
    print("GTK Not Availible")
    sys.exit(1)

现在它无法再拯救Pygtk或GTK库..而且使用python2.7一切正常...... 也许最好的解决方案是避免使用更新的python解释器并将GtkGrid更改为其他内容。

请帮帮我

EDIT :: 只需从Pygtk示例中剪切并粘贴一个示例

#!/usr/bin/python3.3

# example drawingarea.py

import pygtk
pygtk.require('2.0')
import gtk
import operator
import time
import string

class DrawingAreaExample:
    def __init__(self):
        window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        window.set_title("Drawing Area Example")
        window.connect("destroy", lambda w: gtk.main_quit())
        self.area = gtk.DrawingArea()
        self.area.set_size_request(400, 300)
        self.pangolayout = self.area.create_pango_layout("")
        self.sw = gtk.ScrolledWindow()
        ...

使用Python 2.7,它可以使用Python 3.3:No module named 'pygtk'

2 个答案:

答案 0 :(得分:0)

为了明确这一点:您必须决定是否要使用gi.introspection绑定(最新且主要是自动生成)或pygtk gtk+-2.0周围的包装(手工制作,截至目前pygtk3仍在进行中,如果我错了,请纠正我。)

将这些内容混合会让您更进一步或更晚。


您的初始问题是,GtkGridgtk+-3.0的一部分)是gi.introspection绑定的一部分(通常)需要Python 3.x.y,而您使用pygtk2Python 2.7.x一起使用。更改为Python 3.3只是使绑定可用于您。


gtk2 GtkGrid被称为GtkTable,请参阅https://developer.gnome.org/gtk2/stable/GtkTable.html

答案 1 :(得分:-1)

试试这个:

#!/usr/bin/env python
# -*- coding: utf-8; -*-
from gi.repository import Gtk
grid = Gtk.Grid()

你需要使用GTK + 3,而不是python3.3(为了拥有一个Gtk.Grid)......如果我理解你的意思......

编辑。