【问题标题】:AttributeError: 'Style' object has no attribute 'fg_gc'AttributeError:“样式”对象没有属性“fg_gc”
【发布时间】:2014-01-16 14:56:28
【问题描述】:

我正在研究 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解释器告诉我:

AttributeError: 'Style' 对象没有属性 'fg_gc'

请帮助我,我已阅读 (http://www.pygtk.org/pygtk2tutorial/sec-DrawingAreaWidgetAndDrawing.html) 的文档,但我找不到错误

【问题讨论】:

  • 我真的很感兴趣为什么 some1 否决了这个问题..
  • 您可以修复缩进吗?我想你接下来要做的就是找出self.__style 是什么类型,它有什么属性。
  • 我无法编辑代码,因为它会回复我它的格式不正确。 type(self.__style) -> gi.repository.Gtk.Style
  • 加倍努力。请修正缩进。你做了我建议的调试吗?
  • 它似乎只有 fg 属性

标签: python gtk drawable graphicscontext drawingarea


【解决方案1】:

我认为你的导入应该是这样的:

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

您正在混合 pygtk 包装器和 gi.introspection 绑定,这是两个不同的东西!甚至可能将gtk2gtk3 小部件混合使用!


另外请记住:该教程的最后一次更新是在 2005 年

【讨论】:

  • 好的,非常感谢您对这个话题和关于 GtkGrid 的支持,因为它们是严格相关的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-01
  • 2021-04-19
  • 2015-04-07
  • 2021-11-22
  • 1970-01-01
相关资源
最近更新 更多