Glade ou não glade: Qual é a melhor maneira de usar PyGtk?

votos
30

Fui aprendendo python por um tempo agora com algum sucesso. Eu até conseguiu criar um ou dois programas (simples) usando PyGtk + Glade.

A coisa é: eu não tenho certeza se a melhor maneira de usar GTK com python é através da construção de interfaces utilizando Glade.

Eu queria saber se os mais experientes entre nós (lembre-se, eu sou apenas um iniciante) poderia apontar os benefícios e dicas de uso de Glade em vez de criar tudo no próprio código (assumindo que aprender as ligações GTK corretos não faria exatamente ser um problema).

Publicado 07/09/2008 em 05:00
fonte usuário
Em outras línguas...                            


11 respostas

votos
20

Eu diria que isso depende: se você achar que usando Glade você pode construir os aplicativos que você deseja ou precisa para fazer do que isso é absolutamente bom. Se, no entanto você realmente quiser aprender como GTK trabalha ou você tem alguns requisitos de interface do usuário não-padrão que você vai ter que cavar internos GTK (que não são tão complicado).

Pessoalmente, eu sou geralmente cerca de 5 minutos de um cliente rico quando eu preciso de alguma característica ou personalização que é simplesmente impossível por meio de um designer como Glade ou Stetic . Talvez seja só eu. No entanto, ainda é útil para mim para o bootstrap projeto da janela usando uma ferramenta gráfica.

Minha recomendação: se tornando clientes ricos usando GTK vai ser uma parte significativa do seu trabalho / hobby, então, aprender GTK bem desde que você vai precisar para escrever esse código algum dia.

PS Eu pessoalmente acho Stetic ser superior ao Glade para trabalho de design, se um pouco mais instável.

Respondeu 07/09/2008 em 21:09
fonte usuário

votos
12

Use GtkBuilder vez de Glade, está integrado no próprio Gtk em vez de uma biblioteca separada.

O principal benefício do Glade é que é muito, muito mais fácil para criar a interface. É um pouco mais de trabalho para conectar os manipuladores de sinal, mas eu nunca senti que importa muito.

Respondeu 07/09/2008 em 05:20
fonte usuário

votos
5

Eu comecei a usar clareira, mas logo mudou-se para apenas fazendo tudo em código. Glade é bom para coisas simples, e é bom quando você está aprendendo como GTK organiza os widgets (como as coisas são embalados, etc). Construindo tudo em código, no entanto, você tem muito mais flexibilidade. Além disso, você não tem a dependência clareira.

Respondeu 20/09/2008 em 04:04
fonte usuário

votos
5

Glade é muito útil para a criação de interfaces, isso significa que você pode facilmente mudar o GUI sem fazer muito codificação. Você vai descobrir que se você quer fazer algo útil (por exemplo, construir uma treeview) você terá que se familiarizar com as várias partes da documentação GTK - na prática, encontrar um bom tutorial / exemplos.

Respondeu 10/09/2008 em 16:04
fonte usuário

votos
4

Se você estiver escrevendo uma aplicação gráfica tradicional, que reutiliza um monte de componentes padrão do GTK + (botões, etiquetas, embalagens etc.) eu pessoalmente ir com Glade + Kiwi (um quadro conveniência para a construção de aplicações GTK + GUI).

A única grande vantagem de usar Glade é que ele reduz significativamente código layout / embalagem. Aqui está um exemplo extremamente simples que já mostra os problemas com que coloca manualmente uma GUI (sem o uso de funções auxiliares):

container = gtk.HBox()
label = gtk.Label(str="test")
container.add(label)

Para mais exemplos dar uma olhada aqui . Mesmo se você estiver escrevendo um widget personalizado complicado você sempre pode criar um espaço reservado em Glade e substituir que depois de instanciação.

Não deve ser muito longo agora para a equipe Glade para lançar uma nova versão do designer (3.6.0). Esta nova versão irá adicionar suporte para GtkBuilder, que substitui libglade (a biblioteca real que transforma os arquivos XML Glade em uma árvore widget). O novo designer Glade também, mais uma vez adiciona suporte para a definição de catálogos (conjuntos de widgets) em Python, assim você pode facilmente adicionar seus próprios widgets personalizados.

Respondeu 07/02/2009 em 22:19
fonte usuário

votos
4

Eu geralmente começam com Glade até que chegue a um ponto em que não tem as características que eu preciso, por exemplo, a criação de um assistente. Enquanto eu estou usando os widgets padrão que Glade fornece, não há realmente nenhuma razão para a mão-código do GUI.

O mais confortável eu fico com a forma como Glade formata o código, o melhor a mão-de codificação torna. Já para não falar, é realmente fácil de usar Glade para fazer a estrutura subjacente para que você não precisa se preocupar com todos os inicializações.

Respondeu 20/09/2008 em 12:40
fonte usuário

votos
2

Eu recomendo usar o Glade para o desenvolvimento rápido, mas não para aprender. Por quê? porque algumas vezes você terá de afinar alguns widgets, a fim de trabalhar como você quer que eles para trabalhar, e se você realmente não sei / compreender as propriedades atributos de cada elemento, então você vai estar em problemas.

Respondeu 20/11/2008 em 16:33
fonte usuário

votos
1

Em primeiro lugar, começar a colocar isto em perspectiva.

Você estará usando GTK. Esta é uma enorme biblioteca C construído em 1993 usando as melhores tradições do estilo de codificação 1970. Foi construído para ajudar a implementar o GIMP, um concorrente Photoshop wanna-estar com erros de interface de usuário de lenda. Um campo gui típico pode ter quarenta ou mais parâmetros, a maioria repetitivos, tendo getters e setters. Haverá dor.

O GTK-se gere um sistema de tipo dinâmico completo em C usando GObject. Isso faz com que a depuração uma alegria especial que exige uma curta manualmente através de matrizes de ponteiros para métodos cheios de listas de argumentos genéricos com herança implícita. Você também vai estar pulando através de bibliotecas Pango quando você menos espera, por exemplo, usando uma constante Pango para onde em uma etiqueta nas reticências ir quando a página é pequena. Esperar mais dor.

Até agora, você provavelmente está prometendo para embrulhar todas as suas interações GTK em uma arquitetura MVC específico para a sua aplicação. Isso é bom.

Usando Glade, ou GtkBuilder, ou Stetic, ajudará coral o enorme problema de acoplamento de parâmetros quarenta para uma função. Glade fornece um construtor básico GUI para arrastar e soltar componentes juntos. Os parâmetros e os parâmetros herdadas são um tanto separadas. A saída do Glade é o arquivo XML .glade que então você vai ler, anexar as suas chamadas de retorno ( "manipuladores de sinais") para funções de nome idêntico, e consulta ou atualizar a versão em memória de que XML para obter widgets que você usar pyGTK manipular. -se Glade é um range e não bem cuidados.

Usando pyGTK lhe dá controle de grão irritantemente bem, a fim de construir a sua GUI. Este será detalhado, código de copiar e colar. Cada atributo será uma chamada de função separada. O setter atributo não retorna nada, então encadeando as chamadas está fora de questão. Normalmente, o IDE lhe dará apenas o mínimo de ajuda sobre o que significa funções e você será constantemente referindo-se DevHelp ou alguma outra ferramenta.

Seria quase esperar GTK GUIs foram feitos para falhar.

Respondeu 27/01/2010 em 18:45
fonte usuário

votos
1

Pessoalmente eu recomendaria codificá-lo para fora em vez de usar Glade. Eu ainda estou aprendendo Python e PyGTK, mas vou dizer que escrever a interface do usuário com a mão me deu um monte de insights sobre como as coisas funcionam sob o capô.

Uma vez que você tem aprendido eu diria para dar clareira, ou outros designers de interface do usuário uma tentativa, mas definitivamente aprender como fazê-lo da maneira "hard" em primeiro lugar.

Respondeu 15/04/2009 em 14:32
fonte usuário

votos
1

Para telas rápidas e simples eu uso Glade. Mas para qualquer coisa que precisa de níveis mais sutis de controle, eu criar um classes personalizadas para o que eu realmente precisa (isto é importante, porque é muito fácil de se deixar levar com generalizações).

Com aplicações magras classes específicas, posso rapidamente mudar o olhar e sentir ampla aplicação a partir de um único lugar. Um pouco como usar CSS para mantain consistência para web sites.

Respondeu 13/10/2008 em 23:02
fonte usuário

votos
-1

Você pode usar Glade-2 para projetar e usar glade2py.py para gerar o código pygtk puro, usar pygtkcompat para apoiar GTK3

Respondeu 27/06/2014 em 11:09
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more