Как использовать функцию Rsvg.Handle.has_sub? - PullRequest
1 голос
/ 23 марта 2019

Я хочу использовать librsvg для рендеринга части некоторых файлов SVG. Когда я использую этот код:

        try {
            handle = new Rsvg.Handle.from_file(inputtext);
        } catch (GLib.Error e) {error ("%s", e.message);}

    if(handle.has_sub("##sub0") && handle.has_sub("##sub1"))
    {sub=0; stdout.printf("found sub0 and sub1.\n");}

ничего не случилось. конечно id = "sub0" и id = "sub1" находится в файле svg, и обрабатывает также работу (может правильно отобразить весь svg).

id (str или None) - идентификатор элемента в SVG или None для рендеринга всего SVG. Например, если у вас есть слой с именем «layer1», который вы хотите визуализировать, передайте «## layer1» в качестве идентификатора.

в соответствии с https://lazka.github.io/pgi-docs/Rsvg-2.0/classes/Handle.html, для поиска идентификатора в svg необходимо поставить префикс "##".

Если я использую handle.has_sub ("sub0"), код все равно не работает.

...