[python-brasil] Fiz um programinha Python + Qt, e agora?

623 views
Skip to first unread message

Dr_Beco

unread,
Nov 1, 2008, 9:04:11 AM11/1/08
to Lista Python BR
Oi pessoal,

Acabo de fazer um programinha para marcar tempo do jogo de xadrez. Meu
sistema é um Suse Linux 11.0 completo. Utilizei o Qt-designer, o
pyuic, o python 2.5.2 e o Qt 3.17.4 (é essa versão do, não é? print
qt.PYQT_VERSION_STR?)

Tudo isso para perguntar: o que um usuário (não-programador) precisa
de "mínimo" instalado para o programinha rodar no seu windows, sem ter
que instalar uma pancada de coisas? Claro que uma resposta bm óbvia é
o python 2.5 e o Qt3.

Mas acontece que no site da www.python.org , só tem um link e é de 10.8 MB!
http://www.python.org/ftp/python/2.5.2/python-2.5.2.msi

O Qt tá pior ainda. No site da trolltech.com só tem o Qt para C++ e no
enorme tamanho de 118,5 MB!! (E acho que é versão 4, não vi a 3)
ftp://ftp.trolltech.no/qt/source/qt-win-opensource-src-4.4.3.zip

No site http://www.riverbankcomputing.co.uk/ a versão Qt3 só tem os
fontes! Não dá para pedir para meu amigo usuário que não entende nada
de programação baixar os fontes do Qt e compilar.

O que é esse link? PyQt4?
http://www.riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-Py2.5-gpl-4.4.3-1.exe
Será que ele sozinho já instala o python e o qt e funciona tudo? Esse
pelo menos "só" tem 22.9 MB!!

Meu programa tem dois arquivos num total de 90KB. Vou passar vergonha
se precisar indicar um arquivo de 118MB para rodar ele! Aahahah!

Por favor, ajudem, e se possível com link como eu fiz acima, pois tô
meio perdido.
Ah, o computador dele é windows XP x86 se essa informação ajudar em algo.

Obrigado,
Beco.

------------------------------------

,-----------------------------------------------------------.
| Antes de enviar um e-mail para o grupo leia: |
| http://www.pythonbrasil.com.br/moin.cgi/AntesDePerguntar |
| E se você é usuário do BOL lembre-se de cadastrar o |
| e-mail do grupo na lista branca do seu sistema anti-spam. |
`-----------------------------------------------------------´Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/python-brasil/

<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html


Carlos da Silva Santos

unread,
Nov 1, 2008, 10:45:24 AM11/1/08
to python...@yahoogrupos.com.br
Beco,

2008/11/1 Dr_Beco <dr....@gmail.com>:


> Oi pessoal,
>
> Acabo de fazer um programinha para marcar tempo do jogo de xadrez. Meu
> sistema é um Suse Linux 11.0 completo. Utilizei o Qt-designer, o
> pyuic, o python 2.5.2 e o Qt 3.17.4 (é essa versão do, não é? print
> qt.PYQT_VERSION_STR?)
>
> Tudo isso para perguntar: o que um usuário (não-programador) precisa
> de "mínimo" instalado para o programinha rodar no seu windows, sem ter
> que instalar uma pancada de coisas? Claro que uma resposta bm óbvia é
> o python 2.5 e o Qt3.

E o PyQt, que é não é a mesma coisa que (ou não vem incluído com) o Qt

> Mas acontece que no site da www.python.org , só tem um link e é de 10.8 MB!
> http://www.python.org/ftp/python/2.5.2/python-2.5.2.msi

Eu não uso windows, mas acho que é esse mesmo que ele tem de instalar.

> O Qt tá pior ainda. No site da trolltech.com só tem o Qt para C++ e no
> enorme tamanho de 118,5 MB!! (E acho que é versão 4, não vi a 3)
> ftp://ftp.trolltech.no/qt/source/qt-win-opensource-src-4.4.3.zip

Esse é o código fonte, provalmente o binário é menor.

> No site http://www.riverbankcomputing.co.uk/ a versão Qt3 só tem os
> fontes! Não dá para pedir para meu amigo usuário que não entende nada
> de programação baixar os fontes do Qt e compilar.
>
> O que é esse link? PyQt4?
> http://www.riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-Py2.5-gpl-4.4.3-1.exe
> Será que ele sozinho já instala o python e o qt e funciona tudo? Esse
> pelo menos "só" tem 22.9 MB!!

Tenho impressão que esse é o binário só do PyQt. Seu amigo ainda teria
de instalar o python e o qt por fora.

> Meu programa tem dois arquivos num total de 90KB. Vou passar vergonha
> se precisar indicar um arquivo de 118MB para rodar ele! Aahahah!
>
> Por favor, ajudem, e se possível com link como eu fiz acima, pois tô
> meio perdido.
> Ah, o computador dele é windows XP x86 se essa informação ajudar em algo.

Cara, procura no site da trolltech que deve ter o binário para
windows. A riverbank é meio chata, eles em geral não deixam as versões
antigas. Se as fontes canônicas realmente falharem (trolltech,
rivebank), o pyqwt disponibiliza os binários para windows, mas talvez
não seja a versão que você usa:
http://pyqwt.sourceforge.net/download.html

Talvez fosse bom você partir logo para o Qt4, acho que até o Debian já
tem essa versão.

[]s
Carlos

Gabriel Morrison Lima Dantas

unread,
Nov 1, 2008, 11:29:59 AM11/1/08
to python...@yahoogrupos.com.br
> No site http://www.riverbankcomputing.co.uk/ a versão Qt3 só tem os
> fontes! Não dá para pedir para meu amigo usuário que não entende nada
> de programação baixar os fontes do Qt e compilar.
>
> O que é esse link? PyQt4?
>
http://www.riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-Py2.5-gpl-4.4.3-1.exe
> Será que ele sozinho já instala o python e o qt e funciona tudo? Esse
> pelo menos "só" tem 22.9 MB!!

Esse link contém o PyQt4 e o Qt4 completos (sem a documentação). Vem com o
QtDesigner, inclusive. No caso, para seu programa rodar no Windows, você
precisa desse binário e do interpretador Python. Infelizmente eles não
disponibilizaram esse binário para PyQt3; mas seria bom usar o Qt4, que
possui diversas melhorias e novas funcionalidades em relação ao Qt3.

Abraços.

2008/11/1 Carlos da Silva Santos <carlos....@gmail.com>

> Beco,
>
> 2008/11/1 Dr_Beco <dr....@gmail.com <dr.beco%40gmail.com>>:


>


> > Meu programa tem dois arquivos num total de 90KB. Vou passar vergonha
> > se precisar indicar um arquivo de 118MB para rodar ele! Aahahah!
> >
> > Por favor, ajudem, e se possível com link como eu fiz acima, pois tô
> > meio perdido.
> > Ah, o computador dele é windows XP x86 se essa informação ajudar em algo.
>
> Cara, procura no site da trolltech que deve ter o binário para
> windows. A riverbank é meio chata, eles em geral não deixam as versões
> antigas. Se as fontes canônicas realmente falharem (trolltech,
> rivebank), o pyqwt disponibiliza os binários para windows, mas talvez
> não seja a versão que você usa:
> http://pyqwt.sourceforge.net/download.html
>
> Talvez fosse bom você partir logo para o Qt4, acho que até o Debian já
> tem essa versão.
>
> []s
> Carlos
>
> > Obrigado,
> > Beco.
> >
>
>


[As partes desta mensagem que não continham texto foram removidas]

Leonardo Santagada

unread,
Nov 1, 2008, 1:14:02 PM11/1/08
to python...@yahoogrupos.com.br

On Nov 1, 2008, at 11:04 AM, Dr_Beco wrote:

> Oi pessoal,
>
> Acabo de fazer um programinha para marcar tempo do jogo de xadrez. Meu
> sistema é um Suse Linux 11.0 completo. Utilizei o Qt-designer, o
> pyuic, o python 2.5.2 e o Qt 3.17.4 (é essa versão do, não é? print
> qt.PYQT_VERSION_STR?)
>
> Tudo isso para perguntar: o que um usuário (não-programador) precisa
> de "mínimo" instalado para o programinha rodar no seu windows, sem ter
> que instalar uma pancada de coisas? Claro que uma resposta bm óbvia é
> o python 2.5 e o Qt3.


o mais fácil é usar o py2exe e gerar um binário com tudo que o cara
precisa.. nesse caso por exemplo o python incluido ao invés de ser
10mb vai ser só a dll de 250kb e mais umas coisas... acho q tu vai
conseguir ficar com um programa de uns 8-10 mb compactado.

[]'s
--
Leonardo Santagada
santagada at gmail.com

MrBiTS

unread,
Nov 1, 2008, 1:28:36 PM11/1/08
to python...@yahoogrupos.com.br
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

>> Tenho impressão que esse é o binário só do PyQt. Seu amigo ainda teria
>> de instalar o python e o qt por for

Não programo para Windows, por uma questão de bom-senso, mas acredito que o Py2Exe + Distutils farão o serviço para você.

http://www.py2exe.org/

- --

Um abraço

.0. MrBiTs - mrb...@linuxmasters.info
..0 GnuPG - http://keys.cardboard.net:11371/pks/lookup?op=get&search=0xAC37715A6DD1F186
000 http://www.mrbits.com.br


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFJDJHErDdxWm3R8YYRAjG9AJ9SpDd0UcAwLo/AAjMiRAwPDDiR2wCgpcMh
nCyFaV1caex/HP8qaVD+TTo=
=x1Aa
-----END PGP SIGNATURE-----

Luciano Rodrigues da Silva

unread,
Nov 1, 2008, 2:53:04 PM11/1/08
to python...@yahoogrupos.com.br
Sobre o PyQt com o py2exe:
http://www.py2exe.org/index.cgi/Py2exeAndPyQt

e mais um link falando de resolver o problema do py2exe com vários modulos:
http://www.py2exe.org/index.cgi/WorkingWithVariousPackagesAndModules


--
Até,

Luciano

<quote>
"Na prática, a teoria é outra!"
</quote>

:wq!

Dr_Beco

unread,
Nov 1, 2008, 6:56:41 PM11/1/08
to Lista Python BR
Pessoal,

Muito obrigado pelas dicas! Vou tentar pelo caminho do py2exe que
parece-me que conseguirei simplificar mais a tarefa do usuário final.

Já o outro caminho, de tentar instalar tudo o que precisa, eu tentei
instalar o qt na minha partição windows, mas ela é só tem 500MB livres
(é pequena mesmo) e o Qt precisava de mais e não instalou. Então por
aí acho que não dá mesmo. Afinal, não quero sugerir a uma pessoa que
nunca vai usar um Qt-designer a instalar ele...

Obrigado a todos. Depois que eu conseguir com tudo o que me sugeriram
eu conto o sucesso.

Abraços,
Beco.

PS. Se o programa ficar com até 10MB já tá de ótimo tamanho! Eu tava
ficando assustado! :) "So much for portability"

Dr_Beco

unread,
Nov 1, 2008, 7:08:56 PM11/1/08
to Lista Python BR
Err... pessoal,

Desculpe, mas tem um só probleminha... O py2exe não tem para linux?
Como vou usá-lo? Não tenho como instalar uma plataforma de
desenvolvimento python-windows aqui...

Acho que acabou a portabilidade aqui, né? Ou alguém tem alguma
sugestão salvadora?

Abraços,

Rodolfo S. Carvalho

unread,
Nov 1, 2008, 9:33:09 PM11/1/08
to python...@yahoogrupos.com.br
2008/11/1 Dr_Beco <dr....@gmail.com>:

> Err... pessoal,
>
> Desculpe, mas tem um só probleminha... O py2exe não tem para linux?
> Como vou usá-lo? Não tenho como instalar uma plataforma de
> desenvolvimento python-windows aqui...
>
> Acho que acabou a portabilidade aqui, né? Ou alguém tem alguma
> sugestão salvadora?
>

http://wiki.python.org/moin/Freeze

> Abraços,
> Beco.
>
>

--
Rodolfo Carvalho
Web Developer
rodol...@gmail.com

Leonardo Santagada

unread,
Nov 1, 2008, 10:36:03 PM11/1/08
to python...@yahoogrupos.com.br

On Nov 1, 2008, at 9:08 PM, Dr_Beco wrote:

> Err... pessoal,
>
> Desculpe, mas tem um só probleminha... O py2exe não tem para linux?
> Como vou usá-lo? Não tenho como instalar uma plataforma de
> desenvolvimento python-windows aqui...
>
> Acho que acabou a portabilidade aqui, né? Ou alguém tem alguma
> sugestão salvadora?


Essa coisa de portabilidade sem usar as outras plataformas é meio
furada. Eu lembro a um tempo atrás quando o pessoal fazia aplicativo
em java e dizia que era multiplataforma e tu ia rodar no linux e não
funcionava.

Tu tem que pelo menos conseguir rodar os testes nas plataformas que tu
quer suportar, senão a portabilidade fica assim, só no papel.

O que alguém disse aqui acho que esta certo, o binário do pyqt pra
windows vem com as dll's do qt junto então só o que tu precisa é do
python 2.5(não precisa instalar documentação nem nenhum opicional) do
pyqt e ai tu pode rodar tua aplicação. Depois é só configurar o que é
preciso pro py2exe funcionar e instalar e montar o pacote do teu
programa.

Ahh e não se esqueça q windows vista e xp são bem diferentes, então
tenha cuidado e teste em ambos a tua aplicação, se tu quer que ela
funciona neles é claro.

[]'s e boa sorte


--
Leonardo Santagada
santagada at gmail.com

MrBiTS

unread,
Nov 2, 2008, 4:29:35 AM11/2/08
to python...@yahoogrupos.com.br
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Dr_Beco wrote:
> Err... pessoal,
>
> Desculpe, mas tem um só probleminha... O py2exe não tem para linux?
> Como vou usá-lo? Não tenho como instalar uma plataforma de
> desenvolvimento python-windows aqui...
>
> Acho que acabou a portabilidade aqui, né? Ou alguém tem alguma
> sugestão salvadora?

Já sugeriram o Freeze, mas hoje virtualmente todas as distribuições possuem Python empacotado e instalado por default. RedHat, por
exemplo, usa python desde sua instalação, no Anaconda. O apt do Debian e filhos tem python em suas ferramentas. O yum é escrito em
python. Acho que o trabalho de se instalar o PyQT é mínimo em qualquer distribuição moderna.

Quanto aos ambientes de desenvolvimento, já ouviu falar em virtualização ? Você pode instalar uma ( ou várias ) máquinas virtuais
utilizando XEN ( se seu processador possuir tecnologia VT ), VirtualBox, VMWare, rodar XP, Vista, 2k3, Win3.11 ( sim... tenho uma
aqui ), o que você quiser e montar seu ambiente de desenvolvimento em cada uma das plataformas. Escreva a aplicação no seu SO
predileto e use o py2exe para montar os pacotes para cada Windows.

- --

Um abraço


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFJDXL/rDdxWm3R8YYRAlEzAJ0VJ0dhm8EX+diTzTLjsT5+qdNYzgCeOt1v
rr7HAtKL37jm0zVH0x9/oaU=
=TEek
-----END PGP SIGNATURE-----

edbash

unread,
Nov 2, 2008, 9:22:29 AM11/2/08
to python...@yahoogrupos.com.br
Dr_Beco

É possível trabalhar com qt e python

Não sei se ele é o pioneiro, mas quem mostrou livro e possibilidades
foi João Bueno, ativo membro da comunidade python.

Livro para estudar: Rapid Gui with Pyhton and Qt. autor Mark
Summerfield - versão qt= 4.0

Pacotes necessários.

Qt ; python-qt4; python-qt4-common; pyqt4-dev-tools; python 2.5

Forma de trabalho

Formulário construído em qt. Gera-se um arquivo formulário, do tipo
alo.ui. Roda-se em seguida pyqt desta forma: # pyuic4 alo.ui alo.py
gerando-se o arquivo python
Fica mais ou menos assim:
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'alo.ui'
#
# Created: Mon Oct 20 11:22:51 2008
# by: PyQt4 UI code generator 4.3.3
#
# WARNING! All changes made in this file will be lost!

from PyQt4 import QtCore, QtGui

class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")

Form.resize(QtCore.QSize(QtCore.QRect(0,0,307,174).size()).expandedTo(Form.minimumSizeHint()))

self.label = QtGui.QLabel(Form)
self.label.setGeometry(QtCore.QRect(80,60,130,36))

font = QtGui.QFont()
font.setPointSize(20)
self.label.setFont(font)
self.label.setAlignment(QtCore.Qt.AlignCenter)
self.label.setObjectName("label")

self.pushButtonSair = QtGui.QPushButton(Form)
self.pushButtonSair.setGeometry(QtCore.QRect(230,140,75,28))
self.pushButtonSair.setObjectName("pushButtonSair")

self.retranslateUi(Form)

QtCore.QObject.connect(self.pushButtonSair,QtCore.SIGNAL("clicked()"),Form.close)
QtCore.QMetaObject.connectSlotsByName(Form)

def retranslateUi(self, Form):
Form.setWindowTitle(QtGui.QApplication.translate("Form", "Alô
Mundo", None, QtGui.QApplication.UnicodeUTF8))
self.label.setText(QtGui.QApplication.translate("Form", "Alô
Mundo", None, QtGui.QApplication.UnicodeUTF8))

self.pushButtonSair.setText(QtGui.QApplication.translate("Form",
"Sair", None, QtGui.QApplication.UnicodeUTF8))

Obtido o aquivo py é só rodar de forma convencional, #python alo.py ou
criar um executável

EdgardCosta

ps - Créditos à João Bueno

Dr_Beco

unread,
Nov 2, 2008, 5:14:46 AM11/2/08
to Lista Python BR
> Leonardo Santagada:

> Essa coisa de portabilidade sem usar as outras plataformas é meio
> furada. Eu lembro a um tempo atrás quando o pessoal fazia aplicativo
> em java e dizia que era multiplataforma e tu ia rodar no linux e não
> funcionava.
>
> Tu tem que pelo menos conseguir rodar os testes nas plataformas que tu
> quer suportar, senão a portabilidade fica assim, só no papel.
>
> O que alguém disse aqui acho que esta certo, o binário do pyqt pra
> windows vem com as dll's do qt junto então só o que tu precisa é do
> python 2.5(não precisa instalar documentação nem nenhum opicional) do
> pyqt e ai tu pode rodar tua aplicação. Depois é só configurar o que é
> preciso pro py2exe funcionar e instalar e montar o pacote do teu
> programa.
>
> Ahh e não se esqueça q windows vista e xp são bem diferentes, então
> tenha cuidado e teste em ambos a tua aplicação, se tu quer que ela
> funciona neles é claro.
>
> []'s e boa sorte
> --
> Leonardo Santagada
> santagada at gmail.com


Oi Leonardo,

Pois é, rapaz... Eu que escutei tanto que python era o "seus problemas
acabaram" da portabilidade, agora tô sofrendo aqui. Um problema parece
ser a biblioteca Qt. A trolltech para windows é mais para Troll do que
para Tech.
Não sabia que era assim. Já uso linux a muito tempo, ambiente KDE, que
usa o Qt, e não lembrava que o Qt não é grátis para windows. Só para
linux. Uma pena mesmo.

Não tenho interesse em mudar para GNOME, mas acho que vou instalar o
pygtk para ver se dá menos trabalho. Vi nos docs que o python tem um
tal wxWidget que supostamente deveria funcionar default, não é? Ele é
o que?

Abraços,
Beco.

Dr_Beco

unread,
Nov 2, 2008, 5:21:07 AM11/2/08
to Lista Python BR
> Rodolfo Carvalho:
> http://wiki.python.org/moin/Freeze

> --
> Rodolfo Carvalho
> Web Developer

Oi Rodolfo,

Valeu pela dica do Freeze, mas infelizmente ele não resolve o caso.
Pelo que li na documentação, o freeze é um programa que transforma
"python linux" -> "binário linux".
Já o py2exe transforma "python windows" -> "binário windows".

O que eu preciso é o complicado "python linux" -> "binário windows".

No site py2exe tem explicações dizendo que nem adianta tentar rodar
ele via wine que não pega. Fazer o que, né?

No momento estou arrumando espaço onde não tinha, e instalando o Qt
para windows mesmo. Só achei o Qt4 para download. Espero que consiga
rodar o programa assim mesmo.

Abraços,
Beco

Pedro Werneck

unread,
Nov 2, 2008, 9:32:13 AM11/2/08
to python...@yahoogrupos.com.br
On Sunday 02 November 2008 08:21:07 Dr_Beco wrote:
> > Rodolfo Carvalho:
> > http://wiki.python.org/moin/Freeze
> > --
> > Rodolfo Carvalho
> > Web Developer
>
> Oi Rodolfo,
>
> Valeu pela dica do Freeze, mas infelizmente ele não resolve o caso.
> Pelo que li na documentação, o freeze é um programa que transforma
> "python linux" -> "binário linux".
> Já o py2exe transforma "python windows" -> "binário windows".
>
> O que eu preciso é o complicado "python linux" -> "binário windows".

E qual o problema em distribuir dois binários, um para cada? Você está
querendo um binário multiplataforma? Aí é demais, não?


--
Pedro Werneck

Dr_Beco

unread,
Nov 2, 2008, 10:17:49 AM11/2/08
to Lista Python BR
> Pedro Werneck:
> Re: [python-brasil] Re: Fiz um programinha Python + Qt, e agora?

>
> E qual o problema em distribuir dois binários, um para cada? Você está
> querendo um binário multiplataforma? Aí é demais, não?
>
>
> --
> Pedro Werneck

Caro Pedro,

Não, eu não quero um binário para duas plataformas. Até porque quem
entende de SO sabe que isso não é possível.
Quero apenas o binário para windows, ou pode ser também o fonte que eu
fiz no linux fazê-lo rodar no windows sem a necessidade da pessoa ter
que instalar todo um ambiente de programação de mais de 120MB.

O freeze é para linux, ele pega fonte de python feito em linux e gera
binário para linux. O py2exe estou tentando fazer funcionar aqui no
windows, porque ele é para windows, pega fonte python no windows e
gera binário windows.

O que senti falta é programa para linux que pegue o fonte no linux
para gerar um ".exe" para windows, sem necessidade de eu mesmo
ter que instalar o ambiente windows. Aí eu poderia confortavelmente
trabalhar na minha estação linux, e distribuir o executável windows.

Fico grato pela atenção dispendida, mas peço que leia com um pouco
mais dela, antes de responder.

Beco.

Gabriel Morrison Lima Dantas

unread,
Nov 2, 2008, 10:22:30 AM11/2/08
to python...@yahoogrupos.com.br
O Qt4 é GPL para as três plataformas; e realmente não dá para ter um binário
para as três plataformas: lembre que o Qt é feito em C++. A única solução
seria empacotar o seu programa com as DLLs do Qt que fossem necessárias.

2008/11/2 Pedro Werneck <pjwe...@gmail.com>

> On Sunday 02 November 2008 08:21:07 Dr_Beco wrote:
> > > Rodolfo Carvalho:
> > > http://wiki.python.org/moin/Freeze
> > > --
> > > Rodolfo Carvalho
> > > Web Developer
> >
> > Oi Rodolfo,
> >
> > Valeu pela dica do Freeze, mas infelizmente ele não resolve o caso.
> > Pelo que li na documentação, o freeze é um programa que transforma
> > "python linux" -> "binário linux".
> > Já o py2exe transforma "python windows" -> "binário windows".
> >
> > O que eu preciso é o complicado "python linux" -> "binário windows".
>
> E qual o problema em distribuir dois binários, um para cada? Você está
> querendo um binário multiplataforma? Aí é demais, não?
>
> --
> Pedro Werneck
>
>

[As partes desta mensagem que não continham texto foram removidas]

andrecastelo9786

unread,
Nov 2, 2008, 12:47:15 PM11/2/08
to python...@yahoogrupos.com.br
> Não sabia que era assim. Já uso linux a muito tempo, ambiente KDE, que
> usa o Qt, e não lembrava que o Qt não é grátis para windows. Só para
> linux. Uma pena mesmo.

PyQt, do mesmo jeito que Qt, é dual licensed - GPL e comercial. Pra
ganhar dinheiro com o seu programa, você tem que comprar a licensa
comercial (só você, seus clientes não). A outra alternativa é usar a
licensa GPL no seu código e usar a versão GPL do PyQt4.

No meu caso, uso Windows XP e só precisei fazer o download do Python e
do PyQt4. Ah, e nos meus programas, uso a GPL.

Dr_Beco

unread,
Nov 2, 2008, 1:05:28 PM11/2/08
to Lista Python BR
Pessoal,

O python e o pyqt estão instalados com sucesso. Também o py2exe tá rodando ok.

Mas não consigo me livrar desse erro:

C:\Qt\4.4.3>python
Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit
(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import qt
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named qt
>>> import qt4
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named qt4
>>> quit()

Já coloquei variáveis no path. Como sou meio novo no python, não sei
bem onde procurar. Como instalar o módulo Qt?
Tentei seguir as instruções daqui:
http://www.diotavelli.net/PyQtWiki/GPLPyQtWindows

Achei complicado ter que rodar um configure depois. É isso mesmo?

--------------------------

Por favor, quem puder ajudar, dê uma olhadinha no site
http://xadreco.wikispaces.com/relogeco
lá em baixo na seção download.

Fiz ela baseada nas informações que obtive aqui, mas está ainda
confusa, pois não consegui rodar o programa.

Lá tem o programa fonte, para quem quiser se divertir. É open-source e
free (of charge). :)

Em especial, peço aos gurus da lista que dêem uma espiada na parte do
"binário windows", quem puder ajudar fico grato.


Abraços,

Pedro Werneck

unread,
Nov 2, 2008, 2:50:09 PM11/2/08
to python...@yahoogrupos.com.br
On Sunday 02 November 2008 13:17:49 Dr_Beco wrote:
> > Pedro Werneck:
> > Re: [python-brasil] Re: Fiz um programinha Python + Qt, e agora?
> >
> > E qual o problema em distribuir dois binários, um para cada? Você está
> > querendo um binário multiplataforma? Aí é demais, não?
> >
> >
> > --
> > Pedro Werneck
>
> Caro Pedro,
>
> Não, eu não quero um binário para duas plataformas. Até porque quem
> entende de SO sabe que isso não é possível.
> Quero apenas o binário para windows, ou pode ser também o fonte que eu
> fiz no linux fazê-lo rodar no windows sem a necessidade da pessoa ter
> que instalar todo um ambiente de programação de mais de 120MB.
>
> O freeze é para linux, ele pega fonte de python feito em linux e gera
> binário para linux. O py2exe estou tentando fazer funcionar aqui no
> windows, porque ele é para windows, pega fonte python no windows e
> gera binário windows.
>
> O que senti falta é programa para linux que pegue o fonte no linux
> para gerar um ".exe" para windows, sem necessidade de eu mesmo
> ter que instalar o ambiente windows. Aí eu poderia confortavelmente
> trabalhar na minha estação linux, e distribuir o executável windows.
>
> Fico grato pela atenção dispendida, mas peço que leia com um pouco
> mais dela, antes de responder.

Dr. Beco

Eu respondi isso porque é o que ficou aparente pela sua mensagem e pelas mais
recentes que acompanhei. Me desculpe então.

Agora sim, ficou bem claro que o seu problema é ter acesso às plataformas para
resolver o problema. Querer resolver isso de qualquer maneira que não a óbvia
tem duas grandes furadas que já devem estar claras a essa altura: o que o
Santagada disse, de ter de distribuir sem teste adequado na plataforma, e
para o próprio build em si.

É um problema tão grande para você ter de gerar os binários em uma VM windows,
com acesso ao repositório? Se a questão for só conforto, melhor abrir mão
disso e evitar problemas.

E como moderador, evite as alfinetadas desnecessárias a membros da lista, por
mais educadas e apropriadas que você acredite que sejam. Você é um membro
novo, suas mensagens ainda passam pela moderação, e se o alvo tivesse sido
outra pessoa, sua mensagem teria sido editada ou rejeitada.


--
Pedro Werneck

Gabriel Morrison Lima Dantas

unread,
Nov 2, 2008, 4:18:56 PM11/2/08
to python...@yahoogrupos.com.br
Beco, acho que não tem como gerar um .exe no Linux não. Quanto a esses
erros, a API do PyQt4 mudou um pouco em relação ao PyQt3; por ex., todos os
módulos estão em um namespace, PyQt4; dentro desse namespace tem outros
namespaces, que representam cada um dos módulos do Qt: QtCore, QtGui,
QtNetwork, QtSvg, QtXml, QtWebkit, QtOpenGL, QtScript, QtSql e Phonon (acho
que são só esses). Pegue algum tutorial de PyQt4 para ficar a par das
mudanças. Um exemplo de GUI em PyQt4:

from PyQt4 import QtGui, QtCore
import sys

app = QtGui.QApplication(sys.argv)
janela = QtGui.QMainWindow()
botao = QtGui.QPushButton(janela)
QtCore.QObject.connect(botao, QtCore.SIGNAL("clicked()"), janela,
QtCore.SLOT("close()"))
janela.show()
app.exec()

Abraços.

2008/11/2 Pedro Werneck <pjwe...@gmail.com>

[As partes desta mensagem que não continham texto foram removidas]

Gabriel Morrison Lima Dantas

unread,
Nov 2, 2008, 4:21:56 PM11/2/08
to python...@yahoogrupos.com.br
Outra coisa que esqueci de dizer: eu fiz um dia um binário pra Windows com o
py2exe de um player que fiz em PyQt4; acho que ficou por volta de 10 MB; no
caso o py2exe copiava o sip e os módulos do PyQt4 e dlls do Qt4 que eu
precisasse; no meu caso, só foram o QtCore, QtGui e phonon.

2008/11/2 Gabriel Morrison Lima Dantas <gabri...@gmail.com>

Luciano Ramalho

unread,
Nov 2, 2008, 8:57:25 PM11/2/08
to python...@yahoogrupos.com.br
2008/11/2 Dr_Beco <dr....@gmail.com>:

> Pois é, rapaz... Eu que escutei tanto que python era o "seus problemas
> acabaram" da portabilidade, agora tô sofrendo aqui. Um problema parece
> ser a biblioteca Qt. A trolltech para windows é mais para Troll do que
> para Tech.
> Não sabia que era assim. Já uso linux a muito tempo, ambiente KDE, que
> usa o Qt, e não lembrava que o Qt não é grátis para windows. Só para
> linux. Uma pena mesmo.

O QT para Windows é GPL também. Isso de que "não é grátis para
windows" deixou de ser verdade faz tempo. A questão é que se você quer
comercializar o seu produto que usa o QT no Windows, então terá que
comprar da Trolltech licenças para os desenvolvedores, exatamente como
tem que fazer se optar por Delphi ou qualquer outro ambiente de
desenvolvimento proprietário. Mas se o seu produto é GPL, mesmo que
seja Windows, não precisa pagar nada.

> Não tenho interesse em mudar para GNOME, mas acho que vou instalar o
> pygtk para ver se dá menos trabalho. Vi nos docs que o python tem um
> tal wxWidget que supostamente deveria funcionar default, não é? Ele é
> o que?

Dá o mesmo trabalho fazer o GTK ou o QT rodar no Windows. O wxWidgets
é um toolkit multi-plataforma. Leia sobre ele na Web.

[ ]s
Luciano

Rodrigo Manhães

unread,
Nov 2, 2008, 9:58:46 PM11/2/08
to python...@yahoogrupos.com.br
2008/11/2 Leonardo Santagada <sant...@gmail.com>:

> Essa coisa de portabilidade sem usar as outras plataformas é meio
> furada. Eu lembro a um tempo atrás quando o pessoal fazia aplicativo
> em java e dizia que era multiplataforma e tu ia rodar no linux e não
> funcionava.

Aplicações puro-Java realmente são multiplataforma. O que às vezes
ocorre no Linux é rodar as aplicações sobre VMs que não implementam
completamente a especificação. Aí não tem jeito.

[]'s
Rodrigo

Francisco Antônio da Silva Souza

unread,
Nov 3, 2008, 3:25:57 AM11/3/08
to python...@yahoogrupos.com.br
2008/11/3 Rodrigo Manhães <rman...@gmail.com>

Aplicações puro-Java realmente são multiplataforma. O que às vezes
ocorre no Linux é rodar as aplicações sobre VMs que não implementam
completamente a especificação. Aí não tem jeito.

Rodrigo,
o que acontecem são más-práticas por parte dos programadores Java, acredite.
O fato de afirmar que é multi-plataforma sem testar já é má-prática :)

Abçs,
Francisco

2008/11/3 Rodrigo Manhães <rman...@gmail.com>

> 2008/11/2 Leonardo Santagada <sant...@gmail.com<santagada%40gmail.com>


> >:
>
> > Essa coisa de portabilidade sem usar as outras plataformas é meio
> > furada. Eu lembro a um tempo atrás quando o pessoal fazia aplicativo
> > em java e dizia que era multiplataforma e tu ia rodar no linux e não
> > funcionava.
>
> Aplicações puro-Java realmente são multiplataforma. O que às vezes
> ocorre no Linux é rodar as aplicações sobre VMs que não implementam
> completamente a especificação. Aí não tem jeito.
>
> []'s
> Rodrigo
>
>

--
Francisco A. S. Souza
Development with Opensource Software Evangelist (:


[As partes desta mensagem que não continham texto foram removidas]

Leonardo Santagada

unread,
Nov 3, 2008, 7:56:11 AM11/3/08
to python...@yahoogrupos.com.br

On Nov 2, 2008, at 11:57 PM, Luciano Ramalho wrote:

>>
>> Não tenho interesse em mudar para GNOME, mas acho que vou instalar o
>> pygtk para ver se dá menos trabalho. Vi nos docs que o python tem um
>> tal wxWidget que supostamente deveria funcionar default, não é? Ele é
>> o que?
>
> Dá o mesmo trabalho fazer o GTK ou o QT rodar no Windows. O wxWidgets
> é um toolkit multi-plataforma. Leia sobre ele na Web.


Eu acho o wxPython mais fácil de rodar nas 3 plataformas(linux/windows/
os x). Tem binários para as 3 no site deles, e não precisa do X11 no
mac. A vantagem no windows é que conseguir o pyqt para windows
compilado e funcionando era uma dificuldade, e o pygtk sempre foi
relativamente fácil mas não é mantido por muita gente. wx é usado pelo
menos pelo vmware nas 3 plataformas e o wxPython parece ser bem usado
nas 3 tb.

Eu gosto bastante do pygtk no linux... infelizmente em termos de
suporte a outras plataformas ainda acho que deve um pouco.

E pois é, o py2exe tu precisa rodar no windows...

--
Leonardo Santagada
santagada at gmail.com

Rodrigo Manhães

unread,
Nov 3, 2008, 6:27:32 AM11/3/08
to python...@yahoogrupos.com.br
2008/11/3 Francisco Antônio da Silva Souza <francis...@gmail.com>:

> 2008/11/3 Rodrigo Manhães <rman...@gmail.com>
>
> Aplicações puro-Java realmente são multiplataforma. O que às vezes
> ocorre no Linux é rodar as aplicações sobre VMs que não implementam
> completamente a especificação. Aí não tem jeito.
>
> Rodrigo,
> o que acontecem são más-práticas por parte dos programadores Java, acredite.
> O fato de afirmar que é multi-plataforma sem testar já é má-prática :)

Fernando,

Eu sou desenvolvedor Java - iniciando com Python - e os testes de
aplicações desktop para múltiplas plataformas são imprescindíveis,
concordo, mas são mero desencargo de consciência. A coisa funciona
mesmo, e sem necessidade de recompilação, é portabilidade de bytecode.

Eu achava que o Python também era assim e fiquei surpreso com esta
thread. Estou desenvolvendo um pequeno projeto como aprendizado e já
guardei este tópico pra seguir as indicações quando for implementar a
GUI.

[]'s
Rodrigo

Kao Cardoso Felix

unread,
Nov 3, 2008, 10:51:55 AM11/3/08
to python...@yahoogrupos.com.br
2008/11/3 Rodrigo Manhães <rman...@gmail.com>:

> Eu sou desenvolvedor Java - iniciando com Python - e os testes de
> aplicações desktop para múltiplas plataformas são imprescindíveis,
> concordo, mas são mero desencargo de consciência. A coisa funciona
> mesmo, e sem necessidade de recompilação, é portabilidade de bytecode.

Ok, mas isso só é verdade se tu usar bibliotecas padrão do Java ou
outras escritas somente em Java, não? Se eu quiser usar qualquer coisa
escrita em C ou C++ no meu programa Java vou ter que ter os binários
para todas as plataformas de qualquer jeito.

> Eu achava que o Python também era assim e fiquei surpreso com esta
> thread. Estou desenvolvendo um pequeno projeto como aprendizado e já
> guardei este tópico pra seguir as indicações quando for implementar a
> GUI.

Python é assim. O que não é assim são as bibliotecas PyQT, PyGTK e
wxPython. Agora, se tu usar Tk que faz parte da biblioteca padrão do
Python vai ser tão (ou mais) portável que o Java.

Minha opinião sobre o assunto: minha primeira aplicação em Python eu
fiz em 2006 no Boa Constructor com o GUI em wxPython. Tanto a IDE
quanto o meu aplicativo rodavam no Linux e no Windows tranquilamente.
Pra windows eu gerei um executável com py2exe e foi super tranquilo,
muito mais do que fazer o mesmo processo com o pygtk, que precisa um
monte de mandingas de copiar diretórios e distribuir junto com a
aplicação, ou esperar que o usuário tenha a GTK instalada no sistema
(o que tira a vantagem de ser um executável standalone...) O
instalador do wxPython pra windows é bem straightforward e está
disponível no site oficial. E só precisa dele pra rodar, não é
necessário nenhum runtime adicional.

--
Kao Cardoso Félix

Página pessoal: http://www.inf.ufrgs.br/~kcfelix
Blog: http://kaofelix.blogspot.com

Gabriel Morrison Lima Dantas

unread,
Nov 3, 2008, 10:18:51 AM11/3/08
to python...@yahoogrupos.com.br
Rodrigo, com o Python também é assim: o player que tinha feito em PyQt4
funciona tanto no Linux quanto no Windows sem alterar uma linha de código; a
questão é que o programa é feito com bibliotecas externas ao Python, logo se
faz necessário tê-las no sistema, assim como o Python; se ao invés de ter
sido usado o PyQt fosse usado o Tkinter, só o Python bastava (análogo à JVM
+ Swing, por exemplo).

2008/11/3 Rodrigo Manhães <rman...@gmail.com>

> 2008/11/3 Francisco Antônio da Silva Souza <francis...@gmail.com<franciscossouza%40gmail.com>
> >:
>
> > 2008/11/3 Rodrigo Manhães <rman...@gmail.com <rmanhaes%40gmail.com>>


> >
> > Aplicações puro-Java realmente são multiplataforma. O que às vezes
> > ocorre no Linux é rodar as aplicações sobre VMs que não implementam
> > completamente a especificação. Aí não tem jeito.
> >
> > Rodrigo,
> > o que acontecem são más-práticas por parte dos programadores Java,
> acredite.
> > O fato de afirmar que é multi-plataforma sem testar já é má-prática :)
>
> Fernando,
>
> Eu sou desenvolvedor Java - iniciando com Python - e os testes de
> aplicações desktop para múltiplas plataformas são imprescindíveis,
> concordo, mas são mero desencargo de consciência. A coisa funciona
> mesmo, e sem necessidade de recompilação, é portabilidade de bytecode.
>
> Eu achava que o Python também era assim e fiquei surpreso com esta
> thread. Estou desenvolvendo um pequeno projeto como aprendizado e já
> guardei este tópico pra seguir as indicações quando for implementar a
> GUI.
>
> []'s
> Rodrigo
>
>

[As partes desta mensagem que não continham texto foram removidas]

Rodrigo Manhães

unread,
Nov 3, 2008, 11:22:35 AM11/3/08
to python...@yahoogrupos.com.br
2008/11/3 Kao Cardoso Felix <kcf...@gmail.com>:

>
> Ok, mas isso só é verdade se tu usar bibliotecas padrão do Java ou
> outras escritas somente em Java, não? Se eu quiser usar qualquer coisa
> escrita em C ou C++ no meu programa Java vou ter que ter os binários
> para todas as plataformas de qualquer jeito.

A necessidade de usar qualquer coisa não-Java é raríssima. Até
servidores, Tomcat, JBoss, por exemplo, são puro-Java, com bytecode
multiplatafoma.

> Python é assim. O que não é assim são as bibliotecas PyQT, PyGTK e
> wxPython. Agora, se tu usar Tk que faz parte da biblioteca padrão do
> Python vai ser tão (ou mais) portável que o Java.

Então minha primeira opção vai ser o Tk.

> Minha opinião sobre o assunto: minha primeira aplicação em Python eu
> fiz em 2006 no Boa Constructor com o GUI em wxPython. Tanto a IDE
> quanto o meu aplicativo rodavam no Linux e no Windows tranquilamente.
> Pra windows eu gerei um executável com py2exe e foi super tranquilo,
> muito mais do que fazer o mesmo processo com o pygtk, que precisa um
> monte de mandingas de copiar diretórios e distribuir junto com a
> aplicação, ou esperar que o usuário tenha a GTK instalada no sistema
> (o que tira a vantagem de ser um executável standalone...) O
> instalador do wxPython pra windows é bem straightforward e está
> disponível no site oficial. E só precisa dele pra rodar, não é
> necessário nenhum runtime adicional.

E o wxPython vai ser a segunda. Obrigado pelas dicas!

[]'s
Rodrigo

Rodrigo Manhães

unread,
Nov 3, 2008, 11:25:17 AM11/3/08
to python...@yahoogrupos.com.br
2008/11/3 Gabriel Morrison Lima Dantas <gabri...@gmail.com>:

> Rodrigo, com o Python também é assim: o player que tinha feito em PyQt4
> funciona tanto no Linux quanto no Windows sem alterar uma linha de código; a
> questão é que o programa é feito com bibliotecas externas ao Python, logo se
> faz necessário tê-las no sistema, assim como o Python; se ao invés de ter
> sido usado o PyQt fosse usado o Tkinter, só o Python bastava (análogo à JVM
> + Swing, por exemplo).

Entendi, já estou dando uma olhada no Tkinter aqui, que, ao que
parece, é a opção mais simples. Obrigado pela atenção.

[]'s
Rodrigo

Dr_Beco

unread,
Nov 3, 2008, 11:47:16 AM11/3/08
to Lista Python BR
Gabriel:

> Re: [python-brasil] Re: Fiz um programinha Python + Qt, e agora?
>
> Rodrigo, com o Python também é assim: o player que tinha feito em PyQt4
> funciona tanto no Linux quanto no Windows sem alterar uma linha de código; a
> questão é que o programa é feito com bibliotecas externas ao Python, logo se
> faz necessário tê-las no sistema, assim como o Python; se ao invés de ter
> sido usado o PyQt fosse usado o Tkinter, só o Python bastava (análogo à JVM
> + Swing, por exemplo).


Poxa, vivendo e aprendendo... Acho que com essa discussão de
portabilidade que está sendo muito proveitosa para mim, o melhor não é
nem Qt, nem GTK e nem xwWidget... E sim o TKinter!

Vai ser dureza converter um programa já pronto em Qt para TKinter, mas
pelas características apontadas aqui, acho que vale a pena.

Existe algum desenvolvedor rápido de interfaces para TKinter, com se
tem o QtDesigner e o Glade? Uma solução legal do glade, que gostei
muito quando vi, é não precisar gerar a interface, só bastando ler o
XML em tempo real.

[]'s,
Beco.

Luciano Ramalho

unread,
Nov 3, 2008, 11:58:32 AM11/3/08
to python...@yahoogrupos.com.br
2008/11/3 Dr_Beco <dr....@gmail.com>:

> Poxa, vivendo e aprendendo... Acho que com essa discussão de
> portabilidade que está sendo muito proveitosa para mim, o melhor não é
> nem Qt, nem GTK e nem xwWidget... E sim o TKinter!

A causa mais provável de ninguém ter mencionado o TKinter antes é que
com o TKinter a interface do seu programa funciona em todas as
plataformas, mas fica horrível em cada uma delas.

Mas que funciona, funciona.

Para um acabamento mais profissional e igual compatibilidade em
diferentes plataformas, o wxPython é o canal.

[ ]s
Luciano

Marcelo Andrade

unread,
Nov 3, 2008, 12:12:05 PM11/3/08
to python...@yahoogrupos.com.br
2008/11/3 Luciano Ramalho <ram...@gmail.com>:

> 2008/11/3 Dr_Beco <dr....@gmail.com>:
>> Poxa, vivendo e aprendendo... Acho que com essa discussão de
>> portabilidade que está sendo muito proveitosa para mim, o melhor não é
>> nem Qt, nem GTK e nem xwWidget... E sim o TKinter!
>
> A causa mais provável de ninguém ter mencionado o TKinter antes é que
> com o TKinter a interface do seu programa funciona em todas as
> plataformas, mas fica horrível em cada uma delas.

Mas eu lembro de uma referência aqui mesmo nesta lista
sobre algo que possibilitava melhorar o "look-and-feel" do
TkInter até para ficar parecido com os de Windows,
Motif, GTK, Java Metal, etc, etc...

Procurei rápido no histórico mas não encontrei. :-/

Atenciosamente.

--
MARCELO DE F. ANDRADE (aka "eleKtron")
Belem, PA, Amazonia, Brazil
Linux User #221105

[gus@pará ~]# links http://pa.slackwarebrasil.org/

Marcelo Andrade

unread,
Nov 3, 2008, 12:14:02 PM11/3/08
to python...@yahoogrupos.com.br
2008/11/3 Kao Cardoso Felix <kcf...@gmail.com>:
> 2008/11/3 Rodrigo Manhães <rman...@gmail.com>:
>> Eu sou desenvolvedor Java - iniciando com Python - e os testes de
>> aplicações desktop para múltiplas plataformas são imprescindíveis,
>> concordo, mas são mero desencargo de consciência. A coisa funciona
>> mesmo, e sem necessidade de recompilação, é portabilidade de bytecode.
>
> Ok, mas isso só é verdade se tu usar bibliotecas padrão do Java ou
> outras escritas somente em Java, não? Se eu quiser usar qualquer coisa
> escrita em C ou C++ no meu programa Java vou ter que ter os binários
> para todas as plataformas de qualquer jeito.

Depende. Apesar de ser mais difícil, mas mesmo uma aplicação
C/C++ pode ser multiplataforma. As bibliotecas padrão e não
específicas (stdio.h, etc) não dependem da plataforma.

Atenciosamente.

--
MARCELO DE F. ANDRADE (aka "eleKtron")
Belem, PA, Amazonia, Brazil
Linux User #221105

[gus@pará ~]# links http://pa.slackwarebrasil.org/

------------------------------------

Raphael

unread,
Nov 3, 2008, 12:10:20 PM11/3/08
to python...@yahoogrupos.com.br
nunca mexi nessa loucura aqui não:
http://unpythonic.blogspot.com/2007/07/pygtk-py2exe-and-inno-setup-for-single.html
mas foi postada no site official. Não vai resolver seu problema, mas já é um
dica pra quem tiver interessado em gerar suas versões windows do PyGTK
utilizando um único arquivo de instalação.

2008/11/3 Luciano Ramalho <ram...@gmail.com>

> 2008/11/3 Dr_Beco <dr....@gmail.com <dr.beco%40gmail.com>>:


>
> > Poxa, vivendo e aprendendo... Acho que com essa discussão de
> > portabilidade que está sendo muito proveitosa para mim, o melhor não é
> > nem Qt, nem GTK e nem xwWidget... E sim o TKinter!
>
> A causa mais provável de ninguém ter mencionado o TKinter antes é que
> com o TKinter a interface do seu programa funciona em todas as
> plataformas, mas fica horrível em cada uma delas.
>
> Mas que funciona, funciona.
>
> Para um acabamento mais profissional e igual compatibilidade em
> diferentes plataformas, o wxPython é o canal.
>
> [ ]s
> Luciano
>
>

--
Raphael Almeida Araújo
Homepage: http://sites.google.com/site/raphoxaraujo


[As partes desta mensagem que não continham texto foram removidas]

Kao Cardoso Felix

unread,
Nov 3, 2008, 12:25:16 PM11/3/08
to python...@yahoogrupos.com.br
2008/11/3 Marcelo Andrade <mfan...@gmail.com>:

> Depende. Apesar de ser mais difícil, mas mesmo uma aplicação
> C/C++ pode ser multiplataforma. As bibliotecas padrão e não
> específicas (stdio.h, etc) não dependem da plataforma.

Certo, mas isso não muda o fato de que tu vai ter que compilar o
programa para cada uma das plataformas.

--
Kao Cardoso Félix

------------------------------------

Luciano Rodrigues da Silva

unread,
Nov 3, 2008, 12:29:15 PM11/3/08
to python...@yahoogrupos.com.br
2008/11/3 Marcelo Andrade <mfan...@gmail.com>:

>
> Mas eu lembro de uma referência aqui mesmo nesta lista
> sobre algo que possibilitava melhorar o "look-and-feel" do
> TkInter até para ficar parecido com os de Windows,
> Motif, GTK, Java Metal, etc, etc...
>
> Procurei rápido no histórico mas não encontrei. :-/
>

Oq vc está procurando é Tile[1]. Se vcs procurarem o historico tem um
link de como usar-lo. Achei esse link aqui tbm[2].

[1] http://wiki.tcl.tk/13636
[2] http://bruno.thoorens.free.fr/ttk.html

--
Até,

Luciano

<quote>
"Na prática, a teoria é outra!"
</quote>

:wq!

Kao Cardoso Felix

unread,
Nov 3, 2008, 12:34:31 PM11/3/08
to python...@yahoogrupos.com.br
2008/11/3 Raphael <raphox...@gmail.com>:

> nunca mexi nessa loucura aqui não:
> http://unpythonic.blogspot.com/2007/07/pygtk-py2exe-and-inno-setup-for-single.html
> mas foi postada no site official. Não vai resolver seu problema, mas já é um
> dica pra quem tiver interessado em gerar suas versões windows do PyGTK
> utilizando um único arquivo de instalação.

Eu já fiz isso pra trabalho também. A história resumida é assim:

1. O py2exe dá uns erros porque não consegue achar alguns módulos para
incluir com teu executável
2. No teu script pra gerar o executável tem que explicitar pra que ele
não tente incluir esses módulos
3. Depois o py2exe consegue gerar um diretório com os módulos
necessários e um executável. Só que o executável ainda não roda pois
faltam coisas.
4. Daí tem que copiar a pasta do runtime da gtk pra dentro dessa tua
pasta gerada. Alguns arquivos não são necessários, mas não lembro
quais (quando eu fiz a primeira vez fui eliminando aos poucos e
testando pq tinha ficado muito grande)
5. Depois dá pra usar o InnoSetup ou o NSIS pra gerar um instalador do
monte de arquivos gerados.

Comparando com o processo para wxPython:

1. Executa o script py2exe
2. Cria um instalador para a pasta gerada

O segundo é bem mais simples :)

--
Kao Cardoso Félix

------------------------------------

Kao Cardoso Felix

unread,
Nov 3, 2008, 12:37:24 PM11/3/08
to python...@yahoogrupos.com.br
2008/11/3 Marcelo Andrade <mfan...@gmail.com>:

> Mas eu lembro de uma referência aqui mesmo nesta lista
> sobre algo que possibilitava melhorar o "look-and-feel" do
> TkInter até para ficar parecido com os de Windows,
> Motif, GTK, Java Metal, etc, etc...

Mas tem um probleminha com essa solução: ela vai exigir a instalação
de uma extensão. Daí mata a vantagem do Tk de ser padrão, já vir com o
Python e não precisar de mais nada...

--
Kao Cardoso Félix

------------------------------------

Marcelo Andrade

unread,
Nov 3, 2008, 12:40:59 PM11/3/08
to python...@yahoogrupos.com.br
2008/11/3 Luciano Rodrigues da Silva <lucro...@gmail.com>:

> 2008/11/3 Marcelo Andrade <mfan...@gmail.com>:
>>
>> Mas eu lembro de uma referência aqui mesmo nesta lista
>> sobre algo que possibilitava melhorar o "look-and-feel" do
>> TkInter até para ficar parecido com os de Windows,
>> Motif, GTK, Java Metal, etc, etc...
>>
>> Procurei rápido no histórico mas não encontrei. :-/
>>
>
> Oq vc está procurando é Tile[1]. Se vcs procurarem o historico tem um
> link de como usar-lo. Achei esse link aqui tbm[2].
>
> [1] http://wiki.tcl.tk/13636
> [2] http://bruno.thoorens.free.fr/ttk.html

Tile. Era esse nome que eu não lembrava. Grato, Luciano.

Atenciosamente.

--
MARCELO DE F. ANDRADE (aka "eleKtron")
Belem, PA, Amazonia, Brazil
Linux User #221105

[gus@pará ~]# links http://pa.slackwarebrasil.org/

------------------------------------

Luciano Rodrigues da Silva

unread,
Nov 3, 2008, 12:48:45 PM11/3/08
to python...@yahoogrupos.com.br
Se não me engano, na versão 8.5 do Tk já vem com o Tile incluido.
Alguem sabe dizer se a 8.5 entrou no Python 2.6?

--
Até,

Luciano

<quote>
"Na prática, a teoria é outra!"
</quote>

:wq!

------------------------------------

Luciano Rodrigues da Silva

unread,
Nov 3, 2008, 12:51:00 PM11/3/08
to python...@yahoogrupos.com.br
Por este link[1], o Python 2.6 já está com o Tile

[1] http://bytes.com/forum/thread829646.html

Leonardo Santagada

unread,
Nov 3, 2008, 6:05:38 PM11/3/08
to python...@yahoogrupos.com.br

On Nov 3, 2008, at 2:22 PM, Rodrigo Manhães wrote:

> 2008/11/3 Kao Cardoso Felix <kcf...@gmail.com>:
>>
>> Ok, mas isso só é verdade se tu usar bibliotecas padrão do Java ou
>> outras escritas somente em Java, não? Se eu quiser usar qualquer
>> coisa
>> escrita em C ou C++ no meu programa Java vou ter que ter os binários
>> para todas as plataformas de qualquer jeito.
>
> A necessidade de usar qualquer coisa não-Java é raríssima. Até
> servidores, Tomcat, JBoss, por exemplo, são puro-Java, com bytecode
> multiplatafoma.


Bom vamos a discussão corrente, se tu quiser usar GTK ou QT num
programa java vai ter que ter os binários para isso, pois esses são em
C/C++

Se tu usar o zope ou WSGI tu tb não tem que recompilar nada, mas não
estamos falando de servidor web.

E só pra lembrar, usando o py2exe vale a pena até no caso do tkinter,
pois assim o usuário final não precisa instalar nada, nada mesmo.
Embora o pessoal de java adore falar fora um compilador que eu esqueci
o nome (algo como rocket ou jets ou algo assim) o usuário precisa ter
a JVM instalada o que pode ser um problema num windows que o cara não
é administrador ou num linux no mesmo caso.

Eu gosto bastante da idéia do py2exe e do py2app, parece um caminho
bem tranquilo para lançar um produto em python como aplicação final
sem nenhuma dependencia externa. (infelizmente eu não pude ainda
lançar nada assim, mas já vi alguns jogos em pygame que são
distribuidos dessa forma, só quem sabe que são em python é quem
futrica muito nos binários)

[]'s


--
Leonardo Santagada
santagada at gmail.com

Kao Cardoso Felix

unread,
Nov 3, 2008, 6:56:21 PM11/3/08
to python...@yahoogrupos.com.br
2008/11/3 Leonardo Santagada <sant...@gmail.com>:

> (infelizmente eu não pude ainda
> lançar nada assim, mas já vi alguns jogos em pygame que são
> distribuidos dessa forma, só quem sabe que são em python é quem
> futrica muito nos binários)

Só aproveitando a deixa: a Panda3D tem o próprio gerador de binários
standalone pra windows dela (que *talvez* seja uma versão customizada
do py2exe embutida junto com a biblioteca) que também já geram
instaladores usando o NSIS ou o InnoSetup, não lembro qual agora. O
MMO do Piratas do Caribe é em Python, mas não tem dependências pra
quem vai instalar só o jogo :)

Só pra não ficar muito off, a intenção é lembrar que tem vários jeitos
de distribuir programas em Python que não pedem a instalação separada
de bibliotecas nem do interpretador.

--
Kao Cardoso Félix

------------------------------------

Marcelo Castellani

unread,
Nov 3, 2008, 6:57:43 PM11/3/08
to python...@yahoogrupos.com.br
Francisco

Java é multiplataforma pois roda na VM, não no sistema operacional.

Se o cara que desenvolve faz cagada não é culpa da linguagem. Tenho
sistemas Java que fazem uso de sistema de arquivos, multimídia e outros
recursos mais que funcionam sem recompilar em Linux, Mac e Windows.

Marcelo

Em Seg, 2008-11-03 às 06:25 -0200, Francisco Antônio da Silva Souza
escreveu:

Marcelo Castellani

unread,
Nov 3, 2008, 7:01:20 PM11/3/08
to python...@yahoogrupos.com.br
Rodrigo

Dica de novato em Python tb... leia tudo o que puder de Qt,
principalmente aqui:

http://www.commandprompt.com/community/pyqt/book1

Marcelo

Henrique Baggio

unread,
Nov 4, 2008, 6:47:40 PM11/4/08
to python...@yahoogrupos.com.br
2008/11/3 Marcelo Castellani <mar...@hypequino.com>

> Tenho sistemas Java que fazem uso de sistema de arquivos, multimídia e
> outros
> recursos mais que funcionam sem recompilar em Linux, Mac e Windows.
>

Sei que é um pouco mais de lenha na fogueira, mas Python faz tudo isso
também. =]

--
Henrique Baggio

Francisco Antônio da Silva Souza

unread,
Nov 5, 2008, 3:20:58 AM11/5/08
to python...@yahoogrupos.com.br
2008/11/3 Marcelo Castellani <mar...@hypequino.com>
Francisco

Java é multiplataforma pois roda na VM, não no sistema operacional.

Se o cara que desenvolve faz cagada não é culpa da linguagem. Tenho
sistemas Java que fazem uso de sistema de arquivos, multimídia e outros
recursos mais que funcionam sem recompilar em Linux, Mac e Windows.

Marcelo

Marcelo,
também conheço Java, já desenvolvi bastante coisas em Java e quando estava
estudando eu fazia meus trabalhos nas duas plataformas, sei que a linguagem
é "portável". O que defendo é que fazer uma afirmação sobre portabilidade em
grandes sistemas, sem antes testar, pode ser um erro, por que o programador
pode sim fazer uma cagada e em momento algum eu disse que seria culpa da
linguagem :)

Abraços,
Francisco

2008/11/3 Marcelo Castellani <mar...@hypequino.com>

> Francisco
>
> Java é multiplataforma pois roda na VM, não no sistema operacional.
>
> Se o cara que desenvolve faz cagada não é culpa da linguagem. Tenho
> sistemas Java que fazem uso de sistema de arquivos, multimídia e outros
> recursos mais que funcionam sem recompilar em Linux, Mac e Windows.
>
> Marcelo
>
> Em Seg, 2008-11-03 às 06:25 -0200, Francisco Antônio da Silva Souza
> escreveu:
>

> > 2008/11/3 Rodrigo Manhães <rman...@gmail.com <rmanhaes%40gmail.com>>


> > Aplicações puro-Java realmente são multiplataforma. O que às vezes
> > ocorre no Linux é rodar as aplicações sobre VMs que não implementam
> > completamente a especificação. Aí não tem jeito.
> >
> > Rodrigo,
> > o que acontecem são más-práticas por parte dos programadores Java,
> > acredite.
> > O fato de afirmar que é multi-plataforma sem testar já é má-prática :)
> >
> > Abçs,
> > Francisco
> >

> > 2008/11/3 Rodrigo Manhães <rman...@gmail.com <rmanhaes%40gmail.com>>


> >
> > > 2008/11/2 Leonardo Santagada <sant...@gmail.com<santagada%40gmail.com>

Dr_Beco

unread,
Nov 4, 2008, 9:03:25 PM11/4/08
to Lista Python BR
Pessoal,

Se me permite o repeteco, duas perguntinhas que fiz e que podem ter
passado despercebidas dos colegas:

1) Uma vez que instalei todos os requisitos apontados aqui na
discussão, e continuo recebendo o erro:

C:\Qt\4.4.3>python
Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit
(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import qt
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named qt

Talvez exista um modo de forçar o python a achar em algum diretório,
de forma manual, o que ele procura. Acredito que esteja tudo instalado
e seja só uma questão de diretório ou de variáveis ambientes. Ou mesmo
copiar alguma DLL para uma pasta correta. Mas não sei o que ele
procura, nem em que local ele supõe que deveria encontrar.


2) Por fim:
Existe algum desenvolvedor rápido de interfaces para TKinter, como se


tem o QtDesigner e o Glade?

Não achei nada na internet. Achei o "boa" mas é para wxWidgets (*)

---

Se por acaso alguma resposta já foi dada e me passou despercebida,
peço desculpas!

Abraços,
Beco.

Danilo Faustinoni Cabello

unread,
Nov 5, 2008, 8:56:12 AM11/5/08
to python...@yahoogrupos.com.br
2008/11/4 Dr_Beco <dr....@gmail.com>:

> 2) Por fim:
> Existe algum desenvolvedor rápido de interfaces para TKinter, como se
> tem o QtDesigner e o Glade?
> Não achei nada na internet. Achei o "boa" mas é para wxWidgets (*)

Na minha humilde opinião, fuja do TK, pra mim ele só serve pra algo
muito, muito simples, eu gosto do wx, mas o "boa" não é pythônico, se
você criar telas usando ele, vai parecer que você voltou ao Delphi, VB
e afins.

[]'s,
Danilo

Renato Besen

unread,
Nov 5, 2008, 9:16:45 AM11/5/08
to python...@yahoogrupos.com.br
2008/11/5 Dr_Beco <dr....@gmail.com>:

> Pessoal,
>
> Se me permite o repeteco, duas perguntinhas que fiz e que podem ter
> passado despercebidas dos colegas:
>
> 1) Uma vez que instalei todos os requisitos apontados aqui na
> discussão, e continuo recebendo o erro:
>
> C:\Qt\4.4.3>python
> Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit
> (Intel)] on win32
> Type "help", "copyright", "credits" or "license" for more information.
>>>> import qt
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> ImportError: No module named qt

Experimentou import PyQt ou PyQt4? Até onde sei, qt realmente não é o
nome do módulo.


--
Renato Besen
http://baixonivel.blogspot.com/
renatobesen em gmail.com

Pedro Werneck

unread,
Nov 5, 2008, 9:26:40 AM11/5/08
to python...@yahoogrupos.com.br
On Wednesday 05 November 2008 11:56:12 Danilo Faustinoni Cabello wrote:
> 2008/11/4 Dr_Beco <dr....@gmail.com>:
> > 2) Por fim:
> > Existe algum desenvolvedor rápido de interfaces para TKinter, como se
> > tem o QtDesigner e o Glade?
> > Não achei nada na internet. Achei o "boa" mas é para wxWidgets (*)
>
> Na minha humilde opinião, fuja do TK, pra mim ele só serve pra algo
> muito, muito simples, eu gosto do wx, mas o "boa" não é pythônico, se
> você criar telas usando ele, vai parecer que você voltou ao Delphi, VB
> e afins.

O Tkinter é muito poderoso, você pode fazer coisas incrivelmente complexas com
ele. Os dois grandes problemas são a curva de aprendizado, porque de fato
demora algum tempo até dominá-lo e entender melhor como as coisas fazem
sentido, e a aparência.

Se tiver tempo para ler documentação e exemplos de código e estiver disposto a
aceitar a aparência, Tkinter é uma opção tão boa quando os outros, e até
melhor para quem cuja preocupação primária é portabilidade... mas acho que
alguém tão preocupado com um RAD provavelmente não tem tempo.

--
Pedro Werneck

Carlos da Silva Santos

unread,
Nov 5, 2008, 9:31:15 AM11/5/08
to python...@yahoogrupos.com.br
2008/11/5 Dr_Beco <dr....@gmail.com>:

>
> 2) Por fim:
> Existe algum desenvolvedor rápido de interfaces para TKinter, como se
> tem o QtDesigner e o Glade?
> Não achei nada na internet. Achei o "boa" mas é para wxWidgets (*)

Existe um tal de GUIBuilder que é um subprojeto do SpecTCL (pela
descrição, o GUIBuilder gera código para TCL, python/TKinter, Perl e
Ruby, mas eu nunca usei)
http://spectcl.sourceforge.net/

[]s
Carlos

Arthur M. Meskelis

unread,
Nov 5, 2008, 9:11:50 AM11/5/08
to python...@yahoogrupos.com.br
classes qt em http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qabstractbutton.html

a QLabel só recebe dois tipos de sinal

Qt Signals

*
void linkActivated (const QString&)
*
void linkHovered (const QString&)

o QAbstractButton tem esses:
Qt Signals

*
void clicked (bool = 0)
*
void pressed ()
*
void released ()
*
void toggled (bool)

acredito que você pode usar o QAbstractButton sem nenhuma firula,
usando setIcon para determinar as imagens no lugar do botao

Dr_Beco

unread,
Nov 5, 2008, 1:26:51 PM11/5/08
to Lista Python BR
---

Re: [python-brasil] Re: Fiz um programinha Python + Qt, e agora?

Existe um tal de GUIBuilder que é um subprojeto do SpecTCL (pela


descrição, o GUIBuilder gera código para TCL, python/TKinter, Perl e
Ruby, mas eu nunca usei)
http://spectcl.sourceforge.net/

[]s
Carlos
---

Oi Carlos,

Obrigadão por essa dica realmente *matadora*. Instalei aqui, muito
fácil de usar. Aliás, não chamo nem isso de instalação, pois o binário
é um único arquivo para linux, e ao baixar ele já roda direto com um
duplo-click.

A interface é ainda um pouco tosca, mas faz o que precisa: oferece um
modo visual de disponibilizar as bugigangas (tradução de widgets :P )
e gerar o código em Python para depois ser editado e se incluir os
detalhes que faltaram e que o GUI-Builder não supri.

Abraços,
Beco.

Dr_Beco

unread,
Nov 5, 2008, 1:35:59 PM11/5/08
to Lista Python BR
----

Re: [python-brasil] Re: Fiz um programinha Python + Qt, e agora?

2008/11/3 Kao Cardoso Felix <kcfelix@...>:


>
> Ok, mas isso só é verdade se tu usar bibliotecas padrão do Java ou
> outras escritas somente em Java, não? Se eu quiser usar qualquer coisa
> escrita em C ou C++ no meu programa Java vou ter que ter os binários
> para todas as plataformas de qualquer jeito.

--
Rodrigo:
Então minha primeira opção vai ser o Tk.
E o wxPython vai ser a segunda. Obrigado pelas dicas!

[]'s
Rodrigo
----

Cometendo o pecado de me tornar prolixo, mas esperando a absolvição
pelo fato de não deixar de agradecer tantas dicas, nesta concordo com
o Rodrigo.

[]'s

Dr_Beco

unread,
Nov 5, 2008, 1:30:15 PM11/5/08
to Lista Python BR
---
de Danilo:

Re: [python-brasil] Re: Fiz um programinha Python + Qt, e agora?

Na minha humilde opinião, fuja do TK, pra mim ele só serve pra algo


muito, muito simples, eu gosto do wx, mas o "boa" não é pythônico, se
você criar telas usando ele, vai parecer que você voltou ao Delphi, VB
e afins.

[]'s,
Danilo
---

Oi Danilo,

Sei que o TK vai deixar meu programa um pouco feio (ou muito, depende
de quem avalia!). Mas acho que a portabilidade é algo essencial. Gosto
muito de C, e aprendi a gostar de C++. Sei fazer programas portáveis
nessas linguagens, que uma simples compilação resolve. Mas busco no
python justamente simplificar minha vida, não necessitando nem mesmo
"compilar", e nem mesmo dar boot em outra plataforma.
Isso para mim seria fantástico, e motivo suficiente para valorizar o
quanto eu puder as ferramentas embutidas na própria linguagem, ao
invés de bibliotecas externas.

Abraços,

Dr_Beco

unread,
Nov 5, 2008, 2:11:38 PM11/5/08
to Lista Python BR
---
Luciano:

Fiz um programinha Python + Qt, e agora?
Por este link[1], o Python 2.6 já está com o Tile
[1] http://bytes.com/forum/thread829646.html

Até,


Luciano
<quote> "Na prática, a teoria é outra!" </quote>
:wq!

---

Oi Luciano,

Tomei um tanto do meu tempo para entender essa sua dica, pois se o TK
puder ser melhorado um pouquinho e ainda continuar nativo e
multiplataforma, então é de muito interesse meu.

A dificuldade foi entender as versões. Eu não consegui descobrir aqui
qual o TK que tenho, pois o comando:

##> python
Python 2.5.2 (r252:60911, Jun 7 2008, 00:38:48)
[GCC 4.3.1 20080507 (prerelease) [gcc-4_3-branch revision 135036]] on linux2


Type "help", "copyright", "credits" or "license" for more information.

>>> import Tkinter
>>> print Tkinter.__version__
$Revision: 50704 $

Vê-se que a versão é um número estranho de revisão. Inclusive, ao
seguir a dica do Carlos do GUIBuilder, logo que se inicia o programa
ele pergunta: vc quer gerar código para Tk 8.4 ou 8.5? E mais uma vez
tentei descobrir isso e não consegui.

Achei o link [2] http://wiki.tcl.tk/11075
Este é o wiki oficial do tile+tk. E lá se lê:

As of October 2006, Tk 8.5 will include Tile (see also TIP #248) as
Ttk. The Tk version 8.5a6 (alpha version 6) already includes Tile in
the ttk namespace.

(tradução desnecessária, certo?)

Mas isso significa que tenho que usar um "import" diferente?

Baixei a versão 3.0rc1 do python para testar, mas não achei um código
exemplo. Descobri que na versão 3, o tkinter se importa com o nome
todo em minúsculo, assim:

Python 3.0rc1:66507
>>> import tkinter
>>> tkinter.__version__
'$Revision: 66215 $'

Um exemplo que achei, falando como o tile deixa o tk bonito, sugeria o comando:
root = Tkinter.Tk()
[3] http://mail.python.org/pipermail/python-dev/2004-December/050298.html
Mas isso não funciona aqui (nem com letra minúscula).

No wiki, as outras linguagens descritas sugerem no meu entender que
para python o comando seria algo como:
import ttk
Mas isso também não funciona.

E por último, o site [4] http://tktable.sourceforge.net/tile/index.html
lá tem snapshots de como fica o tile para unix, mas não tem nenhuma
dica de código.

Será que um simples programinha "hello world" mostra a diferença entre
tkinter e tile? Como fazer isso?

Sei que este funciona, mas acho que não usa tile:

<code title="hello world with tkinter">
import tkinter
ancora = tkinter.Tk()
janela = Label(ancora, text="Olá mundo!")
janela.pack()
ancora.mainloop()
</code>

Abração,

Luciano Rodrigues da Silva

unread,
Nov 6, 2008, 12:34:15 AM11/6/08
to python...@yahoogrupos.com.br
Desta página[1] temos o exemplo:

<code>
# -*- coding:utf-8 -*-
from Ttk import *

root=Tk()
root["background"]="purple"
root.title("Ttk test")

Button(root,
text="Button",
anchor="w",
foreground="purple",
background="purple",
font=("tahoma","8","bold"),
image=misc16x16.msn,
compound="left",
tip="Here is a simple tip").pack(fill="x",padx=4,pady=4)
root.mainloop()
</code>

Veja que a diferença é que ao invês de usar o modulo Tkinter usariamos
o modulo Ttk.

Não me recordo agora uma forma de vc ver a versão do Tk que está
instalada dentro do interpretador. Pelas notas de versão vc pode
encontrar. Oq sei é que se vc estiver usando a versão 2.5 do Python vc
não terá o Tk 8.5. Vc teria que testar com o 2.6.

Pesquisando um pouco mais, encontrei [2] e, lendo rapidamente, vi que
no 2.6 temos o Tile instalado mas não existe uma forma de acessá-lo.
Esse modulo [3] se funcionar lhe permitiria usar o Tile. Infelizmente,
nesse momento não estou com tempo e nem com o Python 2.6 instalado pra
tentar te ajudar. Te passo mais dois link que podem ser interessantes.

[1] http://bruno.thoorens.free.fr/ttk.html
[2] http://bugs.python.org/issue2983
[3] http://pypi.python.org/pypi/pyttk
[4] http://www.tcl.tk/cgi-bin/tct/tip/48
[5] http://svn.python.org/projects/sandbox/trunk/ttk-gsoc/README


--
Até,

Luciano

<quote>
"Na prática, a teoria é outra!"
</quote>

:wq!

------------------------------------

Dr_Beco

unread,
Nov 6, 2008, 9:32:06 AM11/6/08
to Lista Python BR
>
>
Luciano escreveu:

> Re: [python-brasil] Re: Fiz um programinha Python + Qt, e agora?

Oi Luciano,

Finalmente com essas dicas consegui fazer rodar o bichinho.

Basicamente o caminho das pedras é:
1- Instalar o ttk na referência [3]
2- O código dada na referência [1] para mim não funcionou. Tive que
alterá-lo desta forma:

<code title="ttk">
#!/usr/bin/env python
import Tkinter
import ttk
r1=ttk.Tkinter.Tk()
r1["background"]="purple"
r1.title("ttk Tkinter test")
b1=ttk.Button(r1,text="ttk Tkinter Button",compound="left")
b1.pack(fill="x",padx=4,pady=4)
r1.mainloop()
</code>

Uma vez feito isso, vc pode perceber alguma diferença. Só o que me deixou
com a pulga atrás da orelha é que achei a versão do Tkinter puro ficou
melhor. rs rs. Será que o fato de eu chamar ttk.Tkinter.Tk não está na
verdade fazendo um atalho e chamando o Tkinter ao invés do Ttk?

O exemplo que testei para comparar ambas foi assim:

<code title="tkinter">
#!/usr/bin/env python
import Tkinter
r2=Tkinter.Tk()
r2["background"]="purple"
r2.title("Pure Tkinter test")
b2=Tkinter.Button(r2,text="Pure Tkinter Button",compound="left")
b2.pack(fill="x",padx=4,pady=4)
r2.mainloop()
</code>

Fica mais nítida a diferença quando se coloca o radioButton:
Para o ttk:
ra1=ttk.Radiobutton(r1,text="Radio Button")
ra1.pack()

Para o Tkinter:
ra2=Tkinter.Radiobutton(r2,text="Radio Button")
ra2.pack()

Aí vc percebe que o ra2 tá mais redondinho, pelo menos aqui para mim.

Abraços,
Beco.


[As partes desta mensagem que não continham texto foram removidas]

Luciano Rodrigues da Silva

unread,
Nov 6, 2008, 11:41:17 AM11/6/08
to python...@yahoogrupos.com.br
2008/11/6 Dr_Beco <dr....@gmail.com>:

>
> Uma vez feito isso, vc pode perceber alguma diferença. Só o que me deixou
> com a pulga atrás da orelha é que achei a versão do Tkinter puro ficou
> melhor. rs rs. Será que o fato de eu chamar ttk.Tkinter.Tk não está na
> verdade fazendo um atalho e chamando o Tkinter ao invés do Ttk?
>

Vc está usando no Linux? Se for, talvez vc realmente não note a
diferença. Acho que vc notaria a diferença se estivesse testando no
Windows e no Mac. A ultima vez que testei no Windows ficou bem
parecido com as interfaces nativas.

--
Até,

Luciano

<quote>
"Na prática, a teoria é outra!"
</quote>

:wq!

------------------------------------

Luciano Rodrigues da Silva

unread,
Nov 6, 2008, 11:42:22 AM11/6/08
to python...@yahoogrupos.com.br
Dr_Beco, aproveita que vc está testando e coloca essa informação no wiki.

Dr_Beco

unread,
Nov 6, 2008, 1:02:40 PM11/6/08
to Lista Python BR
>
> Re: [python-brasil] Re: Fiz um programinha Python + Qt, e agora?
>
> 2008/11/6 Dr_Beco <dr.beco@...<http://br.groups.yahoo.com/group/python-brasil/post?postID=Wb2FzMDHddybk0OPRXdXtH23LdIjYGxANnbJUUS0aLUK4GEJzdDHH98ucq2ymaDwt_Yzu1WOyMOqRg>
> >:

> >
> > Uma vez feito isso, vc pode perceber alguma diferença. Só o que me deixou
> > com a pulga atrás da orelha é que achei a versão do Tkinter puro ficou
> > melhor. rs rs. Será que o fato de eu chamar ttk.Tkinter.Tk não está na
> > verdade fazendo um atalho e chamando o Tkinter ao invés do Ttk?
> >
>
> Vc está usando no Linux? Se for, talvez vc realmente não note a
> diferença. Acho que vc notaria a diferença se estivesse testando no
> Windows e no Mac. A ultima vez que testei no Windows ficou bem
> parecido com as interfaces nativas.
>
>
> --
> Até,
>
> Luciano
>

Oi Luciano,

Você adivinhou. Estava testando em Linux. Como você sugeriu, tentei então
testar no windows para ver se a diferença era mais marcante.

Infelizmente novamente a dificuldade para instalar o Ttk e resolver o
problema de programar uma vez só multiplataforma com facilidade para o leigo
que vai instalar.

No windows, python 2.5.2, fiz o processo de instalação do Ttk descrito aqui.
Tudo parece ter instalado bem. O comando "import ttk" que antes não
funcionava, passou a funcionar.

O programa exemplo, infelizmente não funcionou. O erro foi algo estranho:

C:\>python comttk.py


Traceback (most recent call last):

File "comttk.py", line 4, in <module>
r1=ttk.Tkinter.Tk()
File "c:\python25\lib\lib-tk\Tkinter.py", line 1638, in __init__
self._loadtk()
File "c:\python25\Lib\site-packages\ttk.py", line 50, in _wrapper
self.tk.eval('package require tile') # TclError may be raised here
_tkinter.TclError: can't find package tile

Então para mim não dá. Não posso quebrar a cabeça com TclError, e com
detalhes de instalação no windows. Vou me contentar com o Tkinter puro
mesmo, pela sua facilidade de instalação.

Também tentei o Python 3.0, sem instalar nada a mais, para confirmar a
suspeita de que já viria com o ttk instalado. O import não funcionou. Não
testei com letras maiúsculas, ou outras combinações. Vou esperar melhor
documentação ficar disponível sobre isso, ao invés de ficar dando tiro no
escuro.

Quanto ao wiki, eu iria sugerir a mesma coisa. Esse foi (e é) o motivo pelo
qual os testes que tenho feito, relato aqui tudo mastigadinho para algum
voluntário que saiba usar o wiki oficial do python-brasil. De qualquer
forma, já adicionei na minha página pessoal (que também é wiki) estes testes
( http://rcb.wikispaces.com/Python ), que assim ficam facilmente disponíveis
para a comunidade. Se ninguém se voluntariar, final de semana (ou quando me
sobrar um tempo e eu estiver devidamente autorizado) eu passo para o wiki do
python-brasil.

Dr_Beco

unread,
Nov 6, 2008, 1:08:18 PM11/6/08
to Lista Python BR
Pessoal,

Voltando um pouquinho às origens deste tópico...

Relembrando: as dificuldades de se fazer rodar um programa em python + qt3
feitos em linux, ambiente KDE e tudo já dado na mão, em um ambiente windows
do computador de um leigo que teria que instalar tudo do zero, sem
necessidade para ele de instalar o ambiente de programação completo.

---

Atualizando: Depois de tentar sem sucesso instalar o Qt3 no windows, eu
descobri que minhas tentativas resultaram na instalação correta do PyQt4.

O comando que agora funciona é o "import PyQt4".
(o "import qt" continua sem funcionar)

Eu estava olhando um modo de converter o meu programa de Qt3 para Qt4. Uma
das coisas que já percebi é que posso simplesmente substituir tudo o que é:

QLabel -> Qt.QLabel
QButton -> Qt.QButton
etc.

Mas comecei a enroscar em outras coisas mais complexas, como o addItem do
TabWidgets, que antes não era necessário e só precisava usar o construtor,
entre outros problemas.

Será que existe documentação para quem quer fazer essa conversão ?
Documentação ou mesmo algum aplicativo de tradução?

Obrigado,

Samia Godoy

unread,
Nov 6, 2008, 1:27:54 PM11/6/08
to python...@yahoogrupos.com.br

Olá!


Estou desenvolvendo um programa em PyQt4 e a idéia é a seguinte:
O "form" é uma TabWidget e nela inseri duas "tabs",
a tab1 tem campos como nome, numero, data, hora, etc. e embaixo tem um botão pra adicionar esses campos à tab2 que teria uma TableWidget para armazenar os textos digitados nos campos da tab1.

Como faço para que os elementos da tab1 apareçam em forma de tabela na tab2?


Thanks!


Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com.
http://br.new.mail.yahoo.com/addresses

Dr_Beco

unread,
Nov 6, 2008, 2:49:03 PM11/6/08
to Lista Python BR
Samia:
>
> QTabWidget e QTableWidget - iniciante

>
> Olá!
>
>
> Estou desenvolvendo um programa em PyQt4 e a idéia é a seguinte:
> O "form" é uma TabWidget e nela inseri duas "tabs",
> a tab1 tem campos como nome, numero, data, hora, etc. e embaixo tem um botão pra
> adicionar esses campos à tab2 que teria uma TableWidget para armazenar os textos
> digitados nos campos da tab1.
>
> Como faço para que os elementos da tab1 apareçam em forma de tabela na tab2?
>
>
> Thanks!

Oi Samia,

Se o número de elementos do tab1 é fixo, vc deixa uma tabela já criada
com o mesmo número de células em tab2.
Quando a pessoa apertar o botão, vc então copia o conteúdo de cada
elemento para uma célula pré-determinada, convertendo o tipo para
texto quando for o caso.

Por exemplo, a pessoa escreveu no tab1 em:
linha=QLineEdit1()
valor=QDial()

Quando ele clicar o botão, vc copia criando os itens:
item1=QTableWidgetItem (linha.text(), 1)
item2=QTableWidgetItem (QString::number(valor.value()), 2)

E depois colocando os itens na tabela:
item1 na tabela, linha 12, coluna 13 (exemplo), e item2 na tabela,
linha 5, coluna 7:

qtabela.setItem(12, 13, item1)
qtabela.setItem(5, 7, item2)

Não testei, não sei se funciona. Detalhes tirados da documentação:

QTableWidget:
http://doc.trolltech.com/4.0/qtablewidget.html
QTableItem
http://doc.trolltech.com/4.0/qtablewidgetitem.html

E todas as classes em:
http://doc.trolltech.com/4.0/classes.html

Boa sorte,
Beco.

Guilherme Polo

unread,
Nov 6, 2008, 4:53:12 PM11/6/08
to python...@yahoogrupos.com.br
2008/11/6 Dr_Beco <dr....@gmail.com>:

>>
>> Re: [python-brasil] Re: Fiz um programinha Python + Qt, e agora?
>>
>> 2008/11/6 Dr_Beco
>> <dr.beco@...<http://br.groups.yahoo.com/group/python-brasil/post?postID=Wb2FzMDHddybk0OPRXdXtH23LdIjYGxANnbJUUS0aLUK4GEJzdDHH98ucq2ymaDwt_Yzu1WOyMOqRg>
>
>> >:
>> >
>> > Uma vez feito isso, vc pode perceber alguma diferença. Só o que me
>> > deixou
>> > com a pulga atrás da orelha é que achei a versão do Tkinter puro ficou
>> > melhor. rs rs. Será que o fato de eu chamar ttk.Tkinter.Tk não está na
>> > verdade fazendo um atalho e chamando o Tkinter ao invés do Ttk?
>> >
>>
>> Vc está usando no Linux? Se for, talvez vc realmente não note a
>> diferença. Acho que vc notaria a diferença se estivesse testando no
>> Windows e no Mac. A ultima vez que testei no Windows ficou bem
>> parecido com as interfaces nativas.
>>
>>
>> --
>> Até,
>>
>> Luciano
>>
>
> Oi Luciano,
>
> Você adivinhou. Estava testando em Linux. Como você sugeriu, tentei então
> testar no windows para ver se a diferença era mais marcante.
>
> Infelizmente novamente a dificuldade para instalar o Ttk e resolver o
> problema de programar uma vez só multiplataforma com facilidade para o leigo
> que vai instalar.
>
> No windows, python 2.5.2, fiz o processo de instalação do Ttk descrito aqui.
> Tudo parece ter instalado bem. O comando "import ttk" que antes não
> funcionava, passou a funcionar.

Só isso nao garante que vai funcionar, como é mencionado no README
(não tao explicitamente).

>
> O programa exemplo, infelizmente não funcionou. O erro foi algo estranho:
>
> C:\>python comttk.py
> Traceback (most recent call last):
> File "comttk.py", line 4, in <module>
> r1=ttk.Tkinter.Tk()
> File "c:\python25\lib\lib-tk\Tkinter.py", line 1638, in __init__
> self._loadtk()
> File "c:\python25\Lib\site-packages\ttk.py", line 50, in _wrapper
> self.tk.eval('package require tile') # TclError may be raised here
> _tkinter.TclError: can't find package tile
>
> Então para mim não dá. Não posso quebrar a cabeça com TclError, e com
> detalhes de instalação no windows. Vou me contentar com o Tkinter puro
> mesmo, pela sua facilidade de instalação.

Não precisa quebrar a cabeça, mas é preciso terminar de ler o README.
O que aconteceu ali é que voce tem o python 2.5.2 instalado, que nao
traz tcl/tk 8.5 junto (python 2.6 sim), então ou você tem que
recompilar ele, ou instalar o tile que é o que você quer.

Instalando o tile no windows:
http://sourceforge.net/project/showfiles.php?group_id=11464&package_id=107795
Faz download do .zip que é o jeito mais facil.
Descompta ele em qualquer lugar, pronto, tile agora ja ta certo.

Agora o que acontece é que o modulo em python não vai descobrir onde o
tile foi descompactado, você tem que dizer pra ele onde foi que
descompactou. Pra fazer isso você define a variavel de ambiente
TILE_LIBRARY como sendo esse lugar onde foi descompactado. Depois de
fazer isso o programa exemplo deveria rodar.

>
> Também tentei o Python 3.0, sem instalar nada a mais, para confirmar a
> suspeita de que já viria com o ttk instalado. O import não funcionou. Não
> testei com letras maiúsculas, ou outras combinações. Vou esperar melhor
> documentação ficar disponível sobre isso, ao invés de ficar dando tiro no
> escuro.
>

Você instalou o ttk para python 3k tambem ? A sintaxe do 2.x e 3.x
difere em alguns pontos, e o módulo Tkinter virou um pacote tkinter no
3.x, então o import nao vai funcionar mesmo, se não usar a versão
certa.

> Quanto ao wiki, eu iria sugerir a mesma coisa. Esse foi (e é) o motivo pelo
> qual os testes que tenho feito, relato aqui tudo mastigadinho para algum
> voluntário que saiba usar o wiki oficial do python-brasil. De qualquer
> forma, já adicionei na minha página pessoal (que também é wiki) estes testes
> ( http://rcb.wikispaces.com/Python ), que assim ficam facilmente disponíveis
> para a comunidade. Se ninguém se voluntariar, final de semana (ou quando me
> sobrar um tempo e eu estiver devidamente autorizado) eu passo para o wiki do
> python-brasil.
>
> Abraços,
> Beco.

--
-- Guilherme H. Polo Goncalves

Reply all
Reply to author
Forward
0 new messages