web-dev-qa-db-ja.com

Glade:オブジェクト属性を使用しようとしたときのglib GError

Ubuntu 14.10を使用していますが、lubuntuデスクトップ(LXDE)を手動でインストールしています。私はGladeを使用してPythonアプリケーションのUIを設計しました。XMLファイルで属性(<attribute>)を使用しない限り、すべてが正常に機能しています。使用する場合は、 add_from_fileを呼び出すと、次のようになります。

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

18行目は、ファイル内で最初に出現する<attribute>タグであり、次のようになります:<attribute name="weight">bold</attribute>

私のPythonバージョンは3.4.3です。

この問題を解決するにはどうすればよいですか?

2
user4520

エラーメッセージにあるように、valueという名前の属性を追加する必要があります。

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

あなたの定義では

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

nameという名前の属性は1つだけです。開始タグと終了タグの間のテキストは属性ではありません。タグ名attributeは、タグに必要な属性とは何の関係もありません。


有効なXMLファイルの構造は、DTDファイルで定義されています。

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

この定義では、とりわけ、タグに必要な属性が定義されています。 XMLファイルがこれらの定義を満たさない場合、それは無効です。この特定のケースでは、Gladeのバグ(無効なXMLを生成する)であるか、XMLドキュメントが事前に検証されていない可能性があります。

1
A.B.