Autor Tópico: Interface para gerar papel de parede que muda com tempo  (Lida 4955 vezes)

Offline diogo.mvieira

  • Usuário Ubuntu
  • *
  • Mensagens: 7
    • Ver perfil
Interface para gerar papel de parede que muda com tempo
« Online: 25 de Outubro de 2010, 19:48 »
Resolvido!
« Última modificação: 29 de Outubro de 2010, 03:31 por diogo.mvieira »

Offline homerobono

  • Usuário Ubuntu
  • *
  • Mensagens: 44
    • Ver perfil
Re: Interface para gerar papel de parede que muda com tempo
« Resposta #1 Online: 04 de Novembro de 2010, 00:51 »
O rapaz! Poste-nos então a solução!!

Offline diogo.mvieira

  • Usuário Ubuntu
  • *
  • Mensagens: 7
    • Ver perfil
Re: Interface para gerar papel de parede que muda com tempo
« Resposta #2 Online: 04 de Novembro de 2010, 08:49 »
Desculpe, na verdade não foi resolvido, mas sim desisti da solução. Meu problema é que fiz um programa que inclusive tem uma versão bem beta disponível em: http://elp.org.br/diogo_acessories/TG_GUI/ em que ele gera papéis de parede que mudam com o tempo de acordo com uma pasta de imagens escolhida.
O programa foi feito em python 2.7 e o problema é que estou usando commands para executar o gconf e aplicar o papel de parede, mas quando existe uma pasta com caracteres especiais ele não encontra...

Offline Kamei Hyoga

  • Usuário Ubuntu
  • *
  • Mensagens: 1.095
  • Ubuntu 11.04
    • Ver perfil
Re: Interface para gerar papel de parede que muda com tempo
« Resposta #3 Online: 04 de Novembro de 2010, 08:54 »
E só esse é o problema? Se for isso, basta não usar nomes com caracteres especiais

Offline diogo.mvieira

  • Usuário Ubuntu
  • *
  • Mensagens: 7
    • Ver perfil
Re: Interface para gerar papel de parede que muda com tempo
« Resposta #4 Online: 04 de Novembro de 2010, 09:10 »
Sim, mas aí o utilizador não pode escolher nenhuma pasta que tenha caracteres especiais ou até mesmo espaço no nome, e gostaria de contornar esse problema. O erro é que não consegue converter a string

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Interface para gerar papel de parede que muda com tempo
« Resposta #5 Online: 04 de Novembro de 2010, 10:24 »
Tipo isso?
Código: [Selecionar]
import subprocess
import os
subprocess.call(['/usr/bin/gconftool-2','--type', 'string', '--set', '/desktop/gnome/background/picture_filename', os.path.join(os.path.expanduser('~'),'imagens','wallpapers','é com espaço.png')])
Testei no interpretador e funcionou.
« Última modificação: 04 de Novembro de 2010, 10:26 por irtigor »

Offline diogo.mvieira

  • Usuário Ubuntu
  • *
  • Mensagens: 7
    • Ver perfil
Re: Interface para gerar papel de parede que muda com tempo
« Resposta #6 Online: 04 de Novembro de 2010, 17:54 »
Então, irtigor. É exatamente isso que utilizei, mas ao invés do subprocess utilizei o commands, pois o subprocess está caindo em desuso. O problema é do caminho, mas não do nome das imagens.
Usei isso:
Código: [Selecionar]
commands.getoutput('/usr/bin/gconftool-2 --type string --set /desktop/gnome/background/picture_filename '+curdir+'/'+self.text_ctrl_1.GetValue()+'.xml')

Usei o curdir como o diretório que é escolhido pelo usuário e o self.text_ctrl_1.GetValue() é o nome escolhido pelo usuário. Usar o path.join altera em algo ao invés de usar a soma de strings normal? Talvez seja isso...
Vou testar aqui e posto o resultado.
Obrigado pela ajuda!

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Interface para gerar papel de parede que muda com tempo
« Resposta #7 Online: 04 de Novembro de 2010, 19:42 »
Acho que o que você falou do subprocess não confere:
http://docs.python.org/py3k//library/subprocess.html (prova que ele vai continuar)
http://www.python.org/doc//current/library/subprocess.html (fala que ele surgiu para substituir, entre outros, o commands.*)
http://www.python.org/doc//current/library/commands.html (fala que no python 3.x o getoutput() vai para o subprocess)

Ou eu perdi algum ponto na documentação?

Código: [Selecionar]
import subprocess,os
subprocess.call(['/usr/bin/gconftool-2','--type', 'string', '--set', '/desktop/gnome/background/picture_filename', os.path.join(os.path.expanduser('~'),'é com espaços','não sei escolher nome.jpg')])
Também funcionou, e se não me engano o culpado é o subprocess.

Outra alternativa está no pipes
Código: [Selecionar]
>>> import pipes
>>> print (pipes.quote(ur'alguma coisa cheia de espaços é...'))
'alguma coisa cheia de espaços é...'

Só que isso não está na documentação (http://bugs.python.org/issue9723).

---
Falando de coisas não documentadas, o mkarg() do commands deve fazer alguma coisa desse tipo, mas como você pode ver no link acima, no python 3.x ele cai fora (olhe o porque :) ).
« Última modificação: 04 de Novembro de 2010, 19:47 por irtigor »

Offline diogo.mvieira

  • Usuário Ubuntu
  • *
  • Mensagens: 7
    • Ver perfil
Re: Interface para gerar papel de parede que muda com tempo
« Resposta #8 Online: 04 de Novembro de 2010, 23:26 »
Fico muito feliz com toda a ajuda! O problema era só o path.join mesmo, mas aproveitei e alterei o subprocess logo.
Obrigado por tudo! Logo sairá uma versão boa para ajudar a comunidade Gnome
Abraços!

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Interface para gerar papel de parede que muda com tempo
« Resposta #9 Online: 05 de Novembro de 2010, 02:08 »
Se funcionou, altere o titulo da primeira mensagem, adicionando um [Resolvido].

Offline sigur

  • Usuário Ubuntu
  • *
  • Mensagens: 1.176
    • Ver perfil
Re: Interface para gerar papel de parede que muda com tempo
« Resposta #10 Online: 05 de Novembro de 2010, 15:36 »
opa, estou curioso pra usar isso. já está podendo instalar? ou existe algum outro soft pronto pra isso?

valeu