我正在使用Gtk.DrawingArea,因为我只想绘制一个矩形。 我从Gtk示例中剪切并粘贴了DrawingArea的示例,为我的目的切断了无用的代码。
下面是代码(不要关心缩进问题,一切都好,Geany IDE很糟糕):
#!/usr/bin/env python
# -*- coding: utf-8; -*-
from gi.repository import Gtk
import pygtk
pygtk.require('2.0')
class collega_GUI:
def __init__(self):
self.__builder = Gtk.Builder()
self.__builder.add_from_file('prova.glade')
self.__area = self.__builder.get_object('drawingarea1')
self.__style = self.__area.get_style()
self.__gc = self.__style.fg_gc[gtk.STATE_NORMAL]
self.__pangolayout = self.__area.create_pango_layout("")
self.__area.draw_rectangle(self.__gc, True, 0, 0, 20, 20)
self.__pangolayout.set_text("1")
self.__area.draw_layout(self.gc, 0, 50, self.__pangolayout)
self.__window = self.__builder.get_object('window1')
self.__window.show()
if __name__=='__main__':
prova = collega_GUI()
Gtk.main()
所以python翻译说我:
属性错误:'样式'对象没有属性' fg_gc'
请帮助我,我已经阅读了文档(http://www.pygtk.org/pygtk2tutorial/sec-DrawingAreaWidgetAndDrawing.html),但我找不到错误
答案 0 :(得分:1)
我认为您的导入应该如下所示:
import pygtk
pygtk.require('2.0')
import gtk
您正在混合pygtk
包装器和gi.introspection
绑定,这是两个不同的东西!甚至可能将gtk2
与gtk3
小部件混合在一起!
另请注意:该教程的最后一次更新是在2005年!