Este artigo dá a dica de como criar e selecionar grupos de objetos gráficos pelo Scripter do Scribus, o interpretador Python embutido neste programa de editoração eletrônica em software livre.
O scripter tem o comando scribus.selectObject(objeto) para selecionar objetos. O parâmetro é uma string com o nome do objeto.
Para criar grupos de objetos, existe o comando scribus.groupObjects(). O parâmetro pode ser vazio, para se agrupar os objetos atualmente selecionados. Ou pode ser uma lista de objetos: scribus.groupObject([‘Text1′,’Text2′,’Text3’]). O grupo criado recebe o nome “Group” colado a um número de ordem: ‘Group1’, ‘Group2’ etc.
O problema é que o comando scribus.groupObjects() não retorna uma string com o nome do grupo. Ele não é usado na forma:
nomeDoGrupo = scribus.groupObjects()
Mas, precisamos deste nome para manipular os grupos. Talvez este comportamento falho seja modificado em futuras versões do Scribus. Como fazer, então, para obter este nome?
Resolvi essa questão com uma gambiarra. Desseleciono qualquer objeto com o comando scribus.deselectAll(), seleciono os objetos que serão agrupados, agrupo-os. O resultado é um outro objeto grupo, que continua agrupado. Aí, pego o nome do objeto agrupado. Como neste exemplo:
scribus.deselectAll() scribus.selectObject(box1) scribus.selectObject(aspa1) scribus.selectObject(aspa2) scribus.selectObject(fio1) scribus.groupObjects() story = scribus.getSelectedObject(0)
Eu poderia ter usado o comando:
scribus.groupObjects([box1,aspa1,aspa2,fio1])
Mas, com isto, o grupo não restaria selecionado, ao final do agrupamento. Por alguma razão, o grupo só fica selecionado quando o comando de agrupamento é usado sem parâmetros. Agora, eu posso usar a string com o nome do grupo em outras funções de manipulação de objetos gráficos.
Leave a Reply