AttributeError: у объекта 'Style' нет атрибута 'fg_gc'

Я работаю над Gtk.DrawingArea, потому что я хочу просто нарисовать прямоугольник. Я вырезал и вставил пример DrawingArea из примеров Gtk, обрезав ненужный код для моей цели.

Ниже кода (не волнуйтесь о проблемах с отступами, все в порядке, 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 говорит мне:

AttributeError: у объекта 'Style' нет атрибута 'fg_gc'

Пожалуйста, помогите мне, я прочитал документацию по адресу ( http://www.pygtk.org/pygtk2tutorial/sec-DrawingAreaWidgetAndDrawing.html), но не могу найти ошибку

1 ответ

Решение

Я думаю, что ваш импорт должен выглядеть так:

import pygtk
pygtk.require('2.0')
import gtk

Вы смешиваете pygtk обертка и тому gi.introspection привязки, которые две разные вещи! И потенциально даже смешивание gtk2 с gtk3 виджеты!


Также имейте в виду: последнее обновление этого урока было в 2005 году!

Другие вопросы по тегам