Como criar e selecionar grupos de objetos pelo Scribus Scripter

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.

About José Antonio Meira da Rocha

Jornalista, professor das áreas de Editoração e de Mídias Digitais na Universidade Federal de Santa Maria, campus cidade de Frederico Westphalen, Rio Grande do Sul, Brasil. Doutor em Design pelo Programa de Pós-Graduação em Design (PGDesign)/Universidade Federal do Rio Grande do Sul (UFRGS), Porto Alegre, Brasil, 2023. Mestre em Mídias pela UNISINOS, São Leopoldo, RS, Brasil, 2003. Especialista em Informática na Educação, Unisinos, 1976.