{"id":1816,"date":"2011-01-05T23:46:37","date_gmt":"2011-01-06T05:46:37","guid":{"rendered":"http:\/\/meiradarocha.jor.br\/news\/?p=1816"},"modified":"2012-02-14T11:09:13","modified_gmt":"2012-02-14T14:09:13","slug":"como-instalar-interface-grafica-ttk-no-python-do-scribus","status":"publish","type":"post","link":"https:\/\/meiradarocha.jor.br\/news\/2011\/01\/05\/como-instalar-interface-grafica-ttk-no-python-do-scribus\/","title":{"rendered":"Como instalar interface gr\u00e1fica ttk no Python do Scribus"},"content":{"rendered":"<div id=\"attachment_1819\" style=\"width: 208px\" class=\"wp-caption alignright\"><a href=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2010\/12\/title.gif\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1819\" class=\"size-full wp-image-1819 \" title=\"Visual Tcl splash\" src=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2010\/12\/title.gif\" alt=\"Visual Tcl splash\" width=\"198\" height=\"198\" \/><\/a><p id=\"caption-attachment-1819\" class=\"wp-caption-text\">PAGE usa o Visual Tcl<\/p><\/div>\n<p>A linguagem <strong>Python <\/strong>&#8212; usada como linguagem <em>script <\/em>do <strong>Scribus <\/strong>&#8212; tem uma interface gr\u00e1fica default h\u00e1 muitos anos. \u00c9 o m\u00f3dulo <strong>tkinter<\/strong>, que usa a <em>engine <\/em>gr\u00e1fica <strong>Tk <\/strong>(<em>toolkit<\/em>) da linguagem <strong>Tcl<\/strong>. A instala\u00e7\u00e3o 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\u00e3o para Linux usa Python 2.6 e Tcl\/Tk 8.5.<\/p>\n<p>[Atualiza\u00e7\u00e3o em 2012-02-14: O Scribus 1.4 usa Python 2.7, que j\u00e1 tem ttk inclu\u00eddo].<\/p>\n<p>Alguns dos problemas do uso desta interface gr\u00e1fica \u00e9 que ela \u00e9 muito complicada de se programar, a GUI \u00e9 dif\u00edcil de se desenhar e os &#8220;widgets&#8221; &#8212; bot\u00f5es, campos de entrada, menus etc &#8212; s\u00e3o bastantes pobres para os dias atuais. Para facilitar o trabalho com GUIs, foi criado o m\u00f3dulo <strong>Tcl ttk<\/strong> (themed tool kit), default a partir de Tcl\/Tk 8.5 e Python 2.7 e 3.1.<\/p>\n<p>Tornando ainda mais f\u00e1cil o desenho de GUI, um programador da HP, Don Rozenberg, turbinou o <a href=\"http:\/\/wiki.tcl.tk\/1932\">Visual Tcl<\/a> com as novas widgets <strong>ttk <\/strong>e com um bot\u00e3o para gera\u00e7\u00e3o e teste de c\u00f3digos Python. Criou o <a href=\"http:\/\/page.sourceforge.net\/\">PAGE<\/a>, <strong>Python GUI Generator<\/strong>.<\/p>\n<p>Embora o Scribus 1.3.9 tenha vers\u00f5es anteriores do Python e Tcl\/Tk, \u00e9 poss\u00edvel se instalar o ttk neste ambiente pelo pacote <strong>pyttk <\/strong>do Pyhton e <strong>Tile <\/strong>do Tcl.<\/p>\n<h3>Instala\u00e7\u00e3o do Tile no Tcl do Scribus<\/h3>\n<p>Baixei o <a href=\"http:\/\/sourceforge.net\/projects\/tktable\/files\/tile\/tile-0-8-2\/\">Tile 0.8.2.zip<\/a> &#8212; o pacote que deu origem ao ttk e ainda \u00e9 mantido por compatibilidade ao Tcl 8.4 &#8212; 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\u00e9m descompactei para a pasta c:\\Python26\\tcl\\. Na parte Tcl\/Tk, \u00e9 s\u00f3. No Ubuntu 10.10, isto n\u00e3o \u00e9 necess\u00e1rio, pois o Scribus instala o Tcl\/Tk 8.5, que j\u00e1 tem Tile.<\/p>\n<h3>Instala\u00e7\u00e3o do pyttk no Python<\/h3>\n<p>Baixei o <a href=\"http:\/\/pypi.python.org\/pypi\/pyttk\/0.3.2\">zip do pyttk<\/a> e extra\u00ed a pasta pyttk-0.3.2 para c:\\Arquivos de programas\\Scribus 1.3.9\\lib\\site-packages\\. Atrav\u00e9s do Scripter do Scribus, menu &#8220;Script &gt; Executar script&#8230;&#8221;, 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\u00e1-lo, mudar para o diret\u00f3rio descompactado e instalar o m\u00f3dulo no Python:<\/p>\n<pre>wget http:\/\/pypi.python.org\/packages\/source\/p\/pyttk\/pyttk-0.3.2.tar.gz\r\ntar -vzxf .\/pyttk-0.3.2.tar.gz\r\ncd .\/pyttk-0.3.2\r\nsudo python setup.py install<\/pre>\n<p>O resultado da instala\u00e7\u00e3o, no terminal, foi este:<\/p>\n<pre>running install\r\nrunning build\r\nrunning build_py\r\ncreating build\r\ncreating build\/lib.linux-i686-2.6\r\ncopying ttk.py -&gt; build\/lib.linux-i686-2.6\r\nrunning install_lib\r\ncopying build\/lib.linux-i686-2.6\/ttk.py -&gt; \/usr\/local\/lib\/python2.6\/dist-packages\r\nrunning install_egg_info\r\nRemoving \/usr\/local\/lib\/python2.6\/dist-packages\/pyttk-0.3.2.egg-info\r\nWriting \/usr\/local\/lib\/python2.6\/dist-packages\/pyttk-0.3.2.egg-info<\/pre>\n<h3>Instala\u00e7\u00e3o do PAGE<\/h3>\n<p>S\u00f3 o <strong>Tile <\/strong>e o <strong>pyttk <\/strong>s\u00e3o necess\u00e1rios para se usar GUI no Scribus. Mas, para desenhar as GUI, baixei o <a href=\"http:\/\/sourceforge.net\/projects\/page\/\">PAGE<\/a> e instalei-o na pasta c:\\Python26\\. Um \u00edcone no desktop roda o arquivo BAT &#8220;c:\\Python26\\page\\winpage.bat&#8221;, que modifiquei para &#8220;c:\\Arquivos de programas\\tcl\\tclkit.exe c:\\Python26\\page\\page.tcl %1&#8221; porque uso o <a href=\"http:\/\/code.google.com\/p\/tclkit\/\">tclkit <\/a>em vez do Tcl.<\/p>\n<p>Fiz dois pequenos patches no c\u00f3digo Tcl gerador de Python, no arquivo c:\\Python26\\page\\lib\\python_ui.tcl, para usar caracteres UTF-8 (<span style=\"color: #008000;\">linha 224<\/span>) e para o c\u00f3digo aceitar o interpretador Python 2.5.4 (<span style=\"color: #ff0000;\">linha 230<\/span>).<\/p>\n<pre>#-*- <span style=\"color: #008000;\">coding: utf-8<\/span> -*-\r\n\r\nif version &gt;= <span style=\"color: #ff0000;\">0x020504F0<\/span> and version &lt; 0x03000000 :\r\n \u00a0 py2 = True\u00a0\u00a0\u00a0 # Python 2.6 or 2.7 from Tkinter import *\r\n\u00a0  import ttk<\/pre>\n<p>Assim, estou apto a desenvolver interfaces gr\u00e1ficas de complexidade m\u00e9dia para a linguagem <em>script <\/em>do Scribus, como mostra a imagem abaixo.<\/p>\n<p><a href=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2011\/01\/scribus-newspaper-story-builder.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2245\" title=\"Exemplo de interface em pyttk\/Tkinter para o Scribus\" src=\"http:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2011\/01\/scribus-newspaper-story-builder.png\" alt=\"\" width=\"525\" height=\"390\" srcset=\"https:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2011\/01\/scribus-newspaper-story-builder.png 525w, https:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2011\/01\/scribus-newspaper-story-builder-150x111.png 150w, https:\/\/meiradarocha.jor.br\/news\/wp-content\/uploads\/2011\/01\/scribus-newspaper-story-builder-300x223.png 300w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A linguagem Python &#8212; usada como linguagem script do Scribus &#8212; tem uma interface gr\u00e1fica default h\u00e1 muitos anos. \u00c9 o m\u00f3dulo tkinter, que usa a engine gr\u00e1fica Tk (toolkit) [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14,16],"tags":[],"class_list":["post-1816","post","type-post","status-publish","format-standard","hentry","category-python","category-scribus"],"_links":{"self":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/posts\/1816","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/comments?post=1816"}],"version-history":[{"count":0,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/posts\/1816\/revisions"}],"wp:attachment":[{"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/media?parent=1816"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/categories?post=1816"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/meiradarocha.jor.br\/news\/wp-json\/wp\/v2\/tags?post=1816"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}