gtkmm
Interfaces C++ para GTK e GNOME
Interfaces C++ para GTK e GNOME
1. Lugar do gtkmm no mundo |
|
O que é o GTK? |
|
GTK é o kit de ferramentas de widgets GUI, escrito em C, que serve como base para o projeto GNOME, bem como para muitos aplicativos autônomos. GTK é a base sobre a qual o gtkmm é construído. Veja https://www.gtk.org. |
|
Por que é chamado gtkmm? |
|
gtkmm foi originalmente chamado de gtk-- porque GTK era originalmente chamado de GTK+ e tinha um + no nome. No entanto, como -- não é facilmente indexado por mecanismos de busca, o pacote geralmente era chamado de gtkmm, e foi com isso que ficamos. |
|
Por que usar gtkmm ao invés de GTK? |
|
|
|
Por que usar libsigc++? Por que não usar as funções de sinal do GTK? |
|
|
|
Por que o GTK/GNOME não foi escrito em C++? |
|
|
|
Por que não usar Qt se você gosta tanto de C++? |
|
Os desenvolvedores do gtkmm tendem a preferir o gtkmm ao Qt porque o gtkmm faz as coisas de uma forma mais C++. O Qt se origina de uma época em que o C++ e a biblioteca padrão não eram padronizados ou bem suportados pelos compiladores. Portanto, ele duplica muitas coisas que agora estão na biblioteca padrão, como contêineres e informações de tipo. Mais significativamente, eles modificaram a linguagem C++ para fornecer sinais, de modo que as classes Qt não podem ser usadas facilmente com classes não Qt. O gtkmm foi capaz de usar o C++ padrão para fornecer sinais sem alterar a linguagem C++. Além disso, o gtkmm e os outros módulos *mm permitem que você crie software que funciona mais de perto com o desktop do GNOME. |
|
2. Quão bom é o gtkmm? |
|
Em quais sistemas ele é executado? |
|
gtkmm deve funcionar em qualquer sistema do tipo UNIX com os compiladores e bibliotecas apropriados instalados. O compilador GNU C++ (g++, parte do gcc) junto com o conjunto de ferramentas GNU (como encontrado em sistemas Linux e *BSD) compõem seu ambiente de construção padrão. Ele também pode ser construído e usado no Windows com as ferramentas de construção mingw ou MSVC. |
|
Quão completo é ele? |
|
gtkmm tenta oferecer toda a funcionalidade oferecida pelo GTK. Isso significa que você deve ser capaz de fazer qualquer coisa com gtkmm que seja suportada pelo GTK, e fazê-lo mais facilmente. Se algo não estiver coberto, então queremos saber sobre isso. GLib contém classes com funcionalidade similar às classes C++ padrão, por exemplo |
|
O gtkmm usa contêineres C++ padrão, como |
|
Sim, acreditamos em reutilizar o código padrão C++ sempre que possível. Isso pode não ser óbvio a princípio porque o gtkmm tem |
|
Como o gtkmm se compara ao Qt? |
|
|
|
3. Mais informações |
|
Onde é possível discutir sobre gtkmm? |
|
Veja a página de Discussão. |
|
Qual documentação existe para o gtkmm? |
|
Veja a página de Documentação. |
|
Onde posso encontrar algum código de exemplo? |
|
Veja o diretório examples no módulo gtkmm-documentation. A maioria deles aparece no livro do gtkmm. |
|
4. Usando o gtkmm |
|
Quais argumentos do compilador devo usar para compilar um programa gtkmm? |
|
Veja a documentação de referência |
|
Como posso obter o objeto GTK de um objeto gtkmm? |
|
Se você precisar de alguma funcionalidade GTK que não seja suportada pelo gtkmm, você pode chamar o método |
|
Como posso encapsular um widget GTK em uma instância gtkmm? |
|
|
|
Posso usar exceções do C++ com gtkmm? |
|
Sim, mas há restrições. Como o C simples não sabe o que é uma exceção C++, você pode usar exceções no seu código gtkmm, desde que não haja funções C na sua pilha de chamadas entre o lançador e o receptor. Isso significa que você tem que capturar sua exceção localmente. Você será avisado em tempo de execução sobre exceções não capturadas, e você pode especificar um manipulador diferente para exceções não capturadas. Alguns métodos gtkmm usam exceções para relatar erros. Os tipos de exceção que podem ser lançados estão listados na documentação de referência desses métodos. |
|
Como posso usar Cambalache ou Glade com gtkmm? |
|
Veja o capítulo Gtk::Builder no livro do gtkmm. Cambalache substitui o aplicativo Glade. Glade não pode ser usado com GTK4/gtkmm4. |
|
O que |
|
Isso significa que “O widget do contêiner excluirá este widget filho.” Use-o se não quiser se preocupar sobre quando excluir widgets alocados dinamicamente. |
|
Como posso aprender sobre como organizar widgets? Estou confuso com as opções de empacotamento. |
|
Cambalache é uma ótima maneira de ver o que pode ser feito com widgets GTK e GNOME. Use Cambalache para explorar a escolha de widgets e ver como eles podem ser colocados juntos. |
|
Estou acostumado com MFC (Microsoft Foundation Class Library). Onde estão o Document e o View? |
|
Document/View (que é uma versão do padrão de design de software Model–View–Controller (MVC)) não é suportado diretamente pelo GTK. No entanto, as classes |
|
Como carrego imagens para usar com o gtkmm? |
|
Use |
|
O gtkmm é thread-safe? |
|
Nem GTK nem gtkmm são seguros para threads (thread-safe). Todo código GUI deve ser executado na mesma thread. Se seu programa pode se beneficiar do uso de múltiplas threads, dê uma olhada no capítulo de Programas multithread no livro do gtkmm. |