A linguagem Python — usada como linguagem script do Scribus — tem uma interface gráfica default há muitos anos. É o módulo tkinter, que usa a engine gráfica Tk (toolkit) da linguagem Tcl. A instalação Windows do Scribus, muito bem empacotada, instala automaticamente tanto o Python quanto o Tcl/Tk. O Scribus 1.3.9 para Windows usa Python 2.5.4 e Tcl 8.4, enquanto a versão para Linux usa Python 2.6 e Tcl/Tk 8.5.
[Atualização em 2012-02-14: O Scribus 1.4 usa Python 2.7, que já tem ttk incluído].
Alguns dos problemas do uso desta interface gráfica é que ela é muito complicada de se programar, a GUI é difícil de se desenhar e os “widgets” — botões, campos de entrada, menus etc — são bastantes pobres para os dias atuais. Para facilitar o trabalho com GUIs, foi criado o módulo Tcl ttk (themed tool kit), default a partir de Tcl/Tk 8.5 e Python 2.7 e 3.1.
Tornando ainda mais fácil o desenho de GUI, um programador da HP, Don Rozenberg, turbinou o Visual Tcl com as novas widgets ttk e com um botão para geração e teste de códigos Python. Criou o PAGE, Python GUI Generator.
Embora o Scribus 1.3.9 tenha versões anteriores do Python e Tcl/Tk, é possível se instalar o ttk neste ambiente pelo pacote pyttk do Pyhton e Tile do Tcl.
Instalação do Tile no Tcl do Scribus
Baixei o Tile 0.8.2.zip — o pacote que deu origem ao ttk e ainda é mantido por compatibilidade ao Tcl 8.4 — e descompactei a pasta \tile0.8.2\ para a pasta c:\Arquivos de programas\Scribus 1.3.9\tcl\. Como uso o Python 2.6 para desenvolvimento, também descompactei para a pasta c:\Python26\tcl\. Na parte Tcl/Tk, é só. No Ubuntu 10.10, isto não é necessário, pois o Scribus instala o Tcl/Tk 8.5, que já tem Tile.
Instalação do pyttk no Python
Baixei o zip do pyttk e extraí a pasta pyttk-0.3.2 para c:\Arquivos de programas\Scribus 1.3.9\lib\site-packages\. Através do Scripter do Scribus, menu “Script > Executar script…”, rodei o script setup.py para registrar o ttk no Python. No Ubuntu 10.10, instalei com os comandos no terminal para baixar o pyttk, descompactá-lo, mudar para o diretório descompactado e instalar o módulo no Python:
wget http://pypi.python.org/packages/source/p/pyttk/pyttk-0.3.2.tar.gz tar -vzxf ./pyttk-0.3.2.tar.gz cd ./pyttk-0.3.2 sudo python setup.py install
O resultado da instalação, no terminal, foi este:
running install running build running build_py creating build creating build/lib.linux-i686-2.6 copying ttk.py -> build/lib.linux-i686-2.6 running install_lib copying build/lib.linux-i686-2.6/ttk.py -> /usr/local/lib/python2.6/dist-packages running install_egg_info Removing /usr/local/lib/python2.6/dist-packages/pyttk-0.3.2.egg-info Writing /usr/local/lib/python2.6/dist-packages/pyttk-0.3.2.egg-info
Instalação do PAGE
Só o Tile e o pyttk são necessários para se usar GUI no Scribus. Mas, para desenhar as GUI, baixei o PAGE e instalei-o na pasta c:\Python26\. Um ícone no desktop roda o arquivo BAT “c:\Python26\page\winpage.bat”, que modifiquei para “c:\Arquivos de programas\tcl\tclkit.exe c:\Python26\page\page.tcl %1” porque uso o tclkit em vez do Tcl.
Fiz dois pequenos patches no código Tcl gerador de Python, no arquivo c:\Python26\page\lib\python_ui.tcl, para usar caracteres UTF-8 (linha 224) e para o código aceitar o interpretador Python 2.5.4 (linha 230).
#-*- coding: utf-8 -*- if version >= 0x020504F0 and version < 0x03000000 : py2 = True # Python 2.6 or 2.7 from Tkinter import * import ttk
Assim, estou apto a desenvolver interfaces gráficas de complexidade média para a linguagem script do Scribus, como mostra a imagem abaixo.
Leave a Reply