Ir para conteúdo
Fórum Script Brasil
  • 0

FileChooserDialog dando erro


Guest parcos

Pergunta

Não consigo fazer o FileChooserDialog rodar na minha aplicação.

#! /usr/bin/env python

import gtk, pygtk

def clique(botao, caixa):
    pass
    
def SelecionarArquivo(botao):
    dialogo = gtk.FileChooserDialog("Selecionar Arquivo", gtk.FILE_CHOOSER_ACTION_OPEN, (gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OPEN,gtk.RESPONSE_OK))
    dialogo.run()

window = gtk.Window()
window.connect("destroy", gtk.main_quit)
window.set_title('Titulo')
window.set_size_request(250, 50)

vbox = gtk.VBox()
window.add(vbox)

hbox = gtk.HBox()
vbox.pack_start(hbox)

rotulo = gtk.Label("Rotulo")
hbox.pack_start(rotulo)

caixa = gtk.Entry()
hbox.pack_start(caixa)

botao = gtk.Button("Arquivo...")
botao.connect("clicked", SelecionarArquivo)
hbox.pack_start(botao)

botao = gtk.Button("OK")
botao.connect("clicked", clique, caixa)
vbox.pack_start(botao)

window.show_all()

gtk.main()

Retorna

Traceback (most recent call last):

File "05.py", line 9, in SelecionarArquivo

dialogo = gtk.FileChooserDialog("Selecionar Arquivo", gtk.FILE_CHOOSER_ACTION_OPEN, (gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OPEN,gtk.RESPONSE_OK))

TypeError: parent must be a GtkWindow or None

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Falta um parâmetro na função gtk.FileChooserDialog("Selecionar Arquivo", None, gtk.FILE_CHOOSER_ACTION_OPEN, (gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OPEN,gtk.RESPONSE_OK)). Faltava o None. Alguém sabe que parametro é esse? Lá no tutorial não explica... Outra coisa. Quero retornar o nome do arquivo que o cara abriu para uma função. Eu chamo a função assim:

botao = gtk.Button("Arquivo...")
botao.connect("clicked", SelecionarArquivo)
hbox.pack_start(botao)
A função agora está assim:
def SelecionarArquivo(botao):
    dialogo = gtk.FileChooserDialog("Selecionar Arquivo", None, gtk.FILE_CHOOSER_ACTION_OPEN, (gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OPEN,gtk.RESPONSE_OK))
    arquivo = dialogo.run()
    if arquivo == gtk.RESPONSE_OK:
        return dialogo.get_filename()
    elif arquivo == gtk.RESPONSE_CANCEL:
        return False
    dialogo.destroy()

Como eu faria para "mandar" o valor de dialogo.get_filename() para outra função? Essa chamada não poderia ser feita na função SelecionarArquivo... Eu não entendo como fazer isso.

Link para o comentário
Compartilhar em outros sites

  • 0

O parâmetro None é a janela mãe. É aconselhável que voce relacione com a janela chamadora, assim se a mãe morre leva a filha junta.

Para manda o filename com parâmetro pode ser assim:

if result == gtk.RESPONSE_OK:

self.outraFuncao(janelaSalvar.get_filename())

janelaSalvar.destroy()

elif result == gtk.RESPONSE_CANCEL:

janelaSalvar.destroy()

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...