Glade: gler GError ao tentar usar atributos de objetos [closed]

2

Estou usando o Ubuntu 14.10, mas com o desktop lubuntu (LXDE) instalado manualmente. Eu projetei a interface do usuário do meu aplicativo Python usando o Glade. Tudo está funcionando bem, desde que eu não use atributos ( <attribute> ) no arquivo XML; quando eu faço, recebo o seguinte em uma chamada para add_from_file :

gi._glib.GError: <input>:18:41 <attribute> requires attribute "value"

A linha 18 é simplesmente a primeira ocorrência da tag <attribute> no arquivo e se parece com isso: <attribute name="weight">bold</attribute> .

Minha versão do Python é 3.4.3 .

O que posso fazer para resolver este problema?

    
por szczurcio 25.11.2015 / 22:31

1 resposta

1

Como a mensagem de erro diz, você precisa adicionar um atributo chamado value .

<attribute name="weight" value="bold" />

Na sua definição

<attribute name="weight">bold</attribute>

é apenas um atributo com o nome name . O texto entre as tags de abertura e fechamento não é um atributo. O nome da tag attribute não tem nada a ver com o atributo necessário de uma tag.

A estrutura de um arquivo XML válido é definida em um arquivo DTD, por exemplo,

<!DOCTYPE catalog PUBLIC "-//OASIS//DTD XML Catalogs V1.0//EN" "file:///usr/share/xml/schema/xml-core/catalog.dtd">

Nesta definição, entre outros, os atributos necessários para tags são definidos. Se um arquivo XML não atender a essas definições, ele não será válido. Neste caso em particular, pode ser um bug no Glade (gera um XML inválido) ou você não foi validado com antecedência no documento XML.

    
por A.B. 26.11.2015 / 07:00