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
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
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]
> 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
>> 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ê.
- --
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-----
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!
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"
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,
http://wiki.python.org/moin/Freeze
> Abraços,
> Beco.
>
>
--
Rodolfo Carvalho
Web Developer
rodol...@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?
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
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
.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)
iD8DBQFJDXL/rDdxWm3R8YYRAlEzAJ0VJ0dhm8EX+diTzTLjsT5+qdNYzgCeOt1v
rr7HAtKL37jm0zVH0x9/oaU=
=TEek
-----END PGP SIGNATURE-----
É 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
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.
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
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.
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]
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.
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,
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
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]
2008/11/2 Gabriel Morrison Lima Dantas <gabri...@gmail.com>
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
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
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]
>>
>> 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
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
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
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]
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
Entendi, já estou dando uma olhada no Tkinter aqui, que, ao que
parece, é a opção mais simples. Obrigado pela atenção.
[]'s
Rodrigo
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.
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
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/
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/
------------------------------------
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]
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
Página pessoal: http://www.inf.ufrgs.br/~kcfelix
Blog: http://kaofelix.blogspot.com
------------------------------------
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!
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
Página pessoal: http://www.inf.ufrgs.br/~kcfelix
Blog: http://kaofelix.blogspot.com
------------------------------------
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
Página pessoal: http://www.inf.ufrgs.br/~kcfelix
Blog: http://kaofelix.blogspot.com
------------------------------------
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/
------------------------------------
--
Até,
Luciano
<quote>
"Na prática, a teoria é outra!"
</quote>
:wq!
------------------------------------
[1] http://bytes.com/forum/thread829646.html
> 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
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
Página pessoal: http://www.inf.ufrgs.br/~kcfelix
Blog: http://kaofelix.blogspot.com
------------------------------------
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:
Dica de novato em Python tb... leia tudo o que puder de Qt,
principalmente aqui:
http://www.commandprompt.com/community/pyqt/book1
Marcelo
> 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
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>
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.
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
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
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
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
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
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.
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
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,
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,
<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!
------------------------------------
> 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]
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!
------------------------------------
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.
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,
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
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.
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