Criação de programas em GTK

Fala pessoal, estava pensando em aprender a criar apps em GTK no estilo do gnome e queria saber por onde começar. Quais linguagens e IDEs vcs recomendam? Conheço um pouco de Kotlin e Java pra android (acho q nenhumas das duas e suportada pelo gtk mas eu posso tentar com outras). Por enquanto n tenho nenhum projeto me mente mas gostaria de tentar criar algo multiplataforma(Linux,Windows e Mac)

2 Curtidas

Para GTK, vc tem por ex, o Glade, mas dependendo da linguagem, tem-se uma IDE em específico.

Por ex: Pascal: Lazarus, Visual Basic: Gambas 3.

Usa a linguagem Python… da pra usar só com o editor de texto – tipo sublime ou notepad++ ou outro de sua preferência – IDE acho que da pra usar o pycharm… ou tu instalar o Jupyter notebook.

1 Curtida

Principal é definir a linguagem e conhecê-la bem, depois pensar na IDE.

Mas pergunto: com tudo indo pra nuvem, por qual motivo vc quer criar algo para desktop?

Não vejo ela sendo mencionada com freqüência, mas tem também a linguagem de programação oficial do GNOME, o Vala, que tem uns conceitos parecidos com Java e C#. Acaba sendo limitada porque não tem um ambientão de bibliotecas e extensões, mas dá pra aprender um bocado das entranhas do GTK, e isso você vai lidar com qualquer linguagem de programação.

2 Curtidas

GNOME Builder

C ou Vala

Larga mão de GTK e usa Qt

2 Curtidas

Para aplicativos multiplataforma para desktop, você poderia usar Java + JavaFX (GUI) com o OpenJDK da sua distribuição Linux ou da AdoptOpenJDK, ou da Red Hat. Você também pode usar o Python + Kivy (GUI). Essa são as soluções que eu conheço para desenvolvimento de apps multiplataforma que são comercialmente amigáveis e tranquilas no que se refere a licenciamento.

Multiplataforma com GTK é algo que escuto ser complicado, se não inviável, mas não conheço as entranhas de uma possível implementação para opinar. QT seria uma solução melhor para o seu caso. Você estaria “preso” a desenvolver aplicações livres (não vejo como algo ruim), já que para desenvolver um app proprietário com QT precisa pagar pela licença comercial de preço absurdo do mesmo.

Sobre QT: Criação de programas em GTK

2 Curtidas

Na verdade não, isso só é necessário se você usar linkagem estática (arquivos .a do Qt), ou seja o usuário não vai poder usar outras libs Qt pra rodar o programa, porém se você usar linkagem dinâmica (.dll, .so) você pode deixar ele fechado e vender ele, se você usar linkagem dinâmica mesmo que você empacote de forma fechada como se fosse linkagem estática como AppImage e Snap você ainda pode fechar o código e cobrar por ele. Na verdade, com o GTK também é assim, pela licença você não pode fazer uma linkagem estática sem abrir o código sob GPL… a diferença é que o GTK não tem uma licença alternativa que permita a linkagem estática sem abrir o código

3 Curtidas

Explicando a lógica:

Linkagem estática: Você incorpora o Qt ao aplicativo, ou seja um outro app Qt de terceiros feito pra mesma versão do Qt não pode usar as libs do seu aplicativo porque elas não existem e seu app não pode ser iniciado por libs dinâmicas do Qt porque seu app já as contém

Linkagem dinâmica: você carrega as bibliotcas (.dll, .so. dylib) de arquivos externos

1 Curtida

Entendi. Então com a linkagem dinâmica eu posso fazer o bundle com as bibliotecas necessárias e entregar para o usuário independentemente da licença do app?

1 Curtida

Exatamente, é a mesma lógica usada pra distribuir apps proprietário em GTK embora seja raro

1 Curtida

Ola @Vitor238

A alguns meses eu comecei um repositório no Github sobre a construção de interfaces gráficas com Python e GTK.

Particularmente acho a documentação do GTK e do PyGObject muito completas, contudo sempre senti falta de exemplos de código atualizados e focados em Python.

Para quem tiver interesse ou mesmo curiosidade sobre a construção de interfaces gráficas com a linguagem de programação Python segue o link do Github:

https://github.com/natorsc/gui-python-gtk

Atualmente a maior parte do código tem exemplos escritos puramente em Python e exemplos de código onde é feita a leitura dos arquivos de interface gerados pelo Gnome Glade e Gnome Builder.

Dicas, criticas, sugestões, pedidos e reporte de erros são extremamente bem vindos e isso ajudar a manter um bom conteúdo em pt_BR.

7 Curtidas

Ótima inciativa, parabéns!

1 Curtida