Criar programa em C/C++ com interface gráfica [RESOLVIDO]

1. Criar programa em C/C++ com interface gráfica [RESOLVIDO]

Mauricio Ferrari
mauricio123

(usa Slackware)

Enviado em 13/07/2020 - 19:25h

Queria desenvolver uma programa simples com interface gráfica em C ou C++. O que me recomendam? QT ou GTK?

O que dá menos trabalho e qual tem a melhor documentação?

Por fim, onde encontrar uma documentação aceitável para seguir?

Até agora, só fiz para terminal.


  


2. Re: Criar programa em C/C++ com interface gráfica [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 13/07/2020 - 21:41h

Tanto no quesito de menos trabalho quanto no de documentação, o Qt ganha do GTK. Na documentação, ganha de lavada.


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)


3. Re: Criar programa em C/C++ com interface gráfica [RESOLVIDO]

Nick Us
Nick-us

(usa Slackware)

Enviado em 13/07/2020 - 23:54h

Eu te indico a FLTK, o maior problema de indicações é que tudo depende de cada pessoa, como ela pensa, o que ela gosta, o que melhor se adapta a ela e etc... Logo, será vc mesmo que escolherá o que se sentir melhor!

Porque eu indico FLTK, direi os meus motivos pessoais!

Inicialmente procurei uma Interface e IDE onde eu pudesse programar para Linux e Windows, essa foi minha primeira preocupação! Logo isso me deixou entre escolher QT, GTK e wxWidgets. Eu não conhecia ainda a FLTK!

Porque não escolhi QT: Sempre vi o QT como algo PESADO, SUJO, Esquisito e não confiável, até ler que ele não é exatamente gratuito, e eu poderia no futuro ter mais aborrecimentos com licenças ou algo do tipo, preferi nem mesmo sequer arriscar, estudar MUITO para depois jogar o que aprendi?

Para não malhar completamente o QT, eu sei que no QT as coisas funcionam normal, essa foi uma boa impressão! Possue controles bonitos, normais, parecidos com o que eu usei no RadStudio da Borland no Windows!

A GTK, me irritou porque alguns programas tem controles fora de tamanho, ficando esquisito, exemplo disso é o gftp nem dá pra ver o número da porta nele, não achei ela tão ruim, mas achei que não valia meu investimento de tempo, embora ela seja free, e neste ponto, prefiro ela ainda a QT.

Então gastei meu tempo com a wxWidgets! Inicialmente gostei, mas ela me decepcionou MUITO! Bugs, Controles que só funcionam direito em Windows, Janelas com limitações, controles com limitações, documentação mau elaborada sem nenhum exemplo de como funciona, lixos e mais lixos de comandos iguais por causa de mudança de versão, criando uma verdadeira confusão na hora de saber o que é novo o que é velho, e pra piorar: Comandos exagerados me causando a impressão que o criador dela encheu de linguiça para parecer importante. Este foi o caso de checar instância nela! Muito ridículo o método deles, e não obtive sequer explicação para o absurdo que vi! Então perdi a confiança em tudo que criaram!

Muito triste, desolado, por tamanha decepção, e completamente perdido, não querendo me sujeitar a QT e nem querendo usar a GTK, que eu escolheria se não aparecesse opção nenhuma, conheci a FLTK.

A FLTK é linda, mas não se olhar diretamente, pq ela é 100% pequena 150 Libraries, e 100% simples, tipo um Linux que só tem o Terminal, ou a Linda Linguagem C, que eu AMO! Por ser muito pequena, é fácil de estudar como o C, e altamente poderosa, pq afinal, vc faz nela qualquer coisa! Foi justamente isso que eu amei! Tinha GRID? Não! Vc tem que fazer o seu! E eu fiz, um lindo Blue Grid! E agora uso ele em qualquer coisa que eu faça! Essa é a parte boa!

Binários com 18k! Pense nisso! Todos os exemplos na Internet da FLTK são com telas feias, mas isso é pq não perdem tempo em enfeitar! Mas EU gosto de enfeitar, abaixo mostrarei uma imagem de um Menu que criei! E o BlueGrid. Gostei do Poder dela, pq ela me deixa MUDAR TUDO! Não gostou do formato de algo? MUDE, Quer um Grid LOUCO que tenha botões, imagens, Lista, gerenciador de arquivo em uma célula? Pois é! Não existe limites!

Não sou experiente em programação, sou amador, aprendiz, o Paulo me orienta em muito minhas dificuldades, pois não posso arcar com curso, mau tenho pra pagar a internet! E se eu consigo usar a FLTK qualquer um consegue! Ela não parece feita para iniciante, mas para mim achei ótimo, não vi dificuldades, basta conhecer um pouco de C++, C e o Céu é o Limite!

Na minha Opinião comparando FLTK, QT, GTK, wxWidgets:
FLTK é um palito de fósforo com o Poder de destruir o Planeta! Ou se tornar a mais poderosa nave espacial Inter-Estelar do Universo!
QT Um avião pronto, bonito, PESADO, mas não vai sair da Estatosfera!
GTK Mais leve que QT, mas tipo aquele Tiozão enrolado?
wxWidgets Um Garoto de 14 anos que diz que tem 25, promete, promete, promete, vc não vê nada, talvez construa um carro com ela, mas nunca será um avião, a não ser que VC refaça a Biblioteca inteira!

BOM Essa é minha Humilde Opinião, e a impressão que tive de todas elas com minha pouca e mínima experiência!
OBS Aceito puxões de orelhas do Paulo, se falei alguma besteira acima, se esqueçi de algo e etc... Meu intuito não é criticar nada, estou passando o que senti e minha própria experiência, baseada como falei em meu humilde conhecimento de programação que é NADA ainda!




4. Re: Criar programa em C/C++ com interface gráfica [RESOLVIDO]

Nick Us
Nick-us

(usa Slackware)

Enviado em 13/07/2020 - 23:55h

O Menu, pois não consegui colocar todas imagens juntas


5. Re: Criar programa em C/C++ com interface gráfica [RESOLVIDO]

Nick Us
Nick-us

(usa Slackware)

Enviado em 13/07/2020 - 23:57h

Outras telas que montei


6. Re: Criar programa em C/C++ com interface gráfica [RESOLVIDO]

Nick Us
Nick-us

(usa Slackware)

Enviado em 13/07/2020 - 23:58h

Outras telas que montei 2


7. Re: Criar programa em C/C++ com interface gráfica

Nick Us
Nick-us

(usa Slackware)

Enviado em 14/07/2020 - 00:04h

Um exemplo de uma simples Janela pra vc ter uma noção do qto é simples, sem frescura!
Compila assim: Adicionando apenas -lfltk
g++ Test.cpp -o Test -lfltk 

#include <FL/Fl_Window.H>
int main() {
Fl_Window *Win_Main = new Fl_Window(300, 200);
Win_Main->show();
return Fl::run();
}

Pode ser escrito também assim, ainda mais simples
#include <FL/Fl_Window.H>
int main() {
Fl_Window Win_Main(300, 200);
Win_Main.show();
return Fl::run();
}

A Imagem abaixo mostra como fica. A FLTK vem também com o FLUID um Designer super simples de usar, uso ele para posicionar o que me interessa, depois pego o código e escrevo do meu jeito! Tem gente que compila nele!

Mas como eu disse antes, isso é uma escolha pessoal, vc saberá o que melhor vai se adaptar a você, o que vc mais vai gostar ou não! TESTE todas se puder!


8. Re: Criar programa em C/C++ com interface gráfica [RESOLVIDO]

Mauricio Ferrari
mauricio123

(usa Slackware)

Enviado em 14/07/2020 - 00:09h


fltk é isso. Vou levar em consideração. Vou estudar um pouquinho sobre ele e tirar minhas conclusões.

99% vou usar essa.

___________________________________
Conhecimento não se Leva para o Túmulo.


9. Re: Criar programa em C/C++ com interface gráfica [RESOLVIDO]

Mauricio Ferrari
mauricio123

(usa Slackware)

Enviado em 14/07/2020 - 00:12h


Qual é o nome do pacote que eu teria que instalar?

___________________________________
Conhecimento não se Leva para o Túmulo.


10. Re: Criar programa em C/C++ com interface gráfica

Nick Us
Nick-us

(usa Slackware)

Enviado em 14/07/2020 - 02:37h

mauricio123 escreveu:
Qual é o nome do pacote que eu teria que instalar?



Eu compilei a versão atual em desenvolvimento v.1.4.0, mas muita gente usa a Stable v.1.3.5
[b]Mas vamos para as boas notícias![\b] Ela já existe prontinha no Slackware dentro da pasta EXTRA fltk-1.3.5-x86_64-1.txz
Ou pode baixar direto do site do slackware: https://packages.slackware.com/?r=slackware64-current&p=fltk-1.3.5-x86_64-1.txz

Ela também vem com inúmeros exemplos dentro da pasta dela prontinhos!

SITE:
https://www.fltk.org/
https://github.com/fltk/fltk

Fórum: https://groups.google.com/forum/?oldui=1#!forum/fltkgeneral
Manual Completo de Referência:
https://www.fltk.org/doc-1.4/index.html

Se precisar de ajuda, para criar o Slackbuild da última versão, ou compilar posso te ajudar, é facinho mesmo! Compilar os exemplos para aprender é ótimo, são muitos e muitos úteis, eu compilei tudo da versão nova, de dentro da pasta dele mesmo, baixei o source, compilei os exemplos dentro da pasta descompactada para estudar, é tudo make normal e fácil.

Ela também tem um Site cheio de exemplos prontinhos para estudar, é compilar e ver! http://seriss.com/people/erco/fltk/
O Fórum dela é bastante ativo, em Inglês, todos ajudam muito!



11. Re: Criar programa em C/C++ com interface gráfica

Paulo
paulo1205

(usa Ubuntu)

Enviado em 14/07/2020 - 09:00h

NickUS, você deveria ser vendedor de carros usados. ;)

Eu acho a FLTK estranha. Particularmente me causa estranheza o encadeamento implícito entre os objetos, que depende da ordem como eles são criados, em vez de deixar explícitas as relações de parentesco entre os objetos, que permite criar objetos em praticamente qualquer ordem.

Admito que essa estranheza de minha parte pode ser devida somente a um hábito adquirido pelo uso do encadeamento explícito. Mesmo assim, não acho muito natural encontrar num programa algo como o exemplo abaixo.
new Fl_Button(0, 0, 100, 30, "Botão de Teste"); 

Parece que se está criando um objeto dinamicamente, sem nenhum ponteiro que receba uma referência para ele, que é uma coisa que eu nunca vi em nenhum outro contexto.

Tudo bem que, lendo a documentação, a gente descobre que o FLTK tem um singleton que é compartilhado por todos os objetos (na verdade, parece ser uma classe com todos os membros estáticos, o que dá na mesma), e que as relações de parentesco ocorrem automaticamente através desse singleton quando os construtores das classes mais básicas da biblioteca são (implicitamente) invocados. Mas mesmo sabendo disso, uma alocação como a que está acima é tão diferente do que se costuma ver que sempre parece que tem alguma coisa errada.


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)


12. Re: Criar programa em C/C++ com interface gráfica

Mauricio Ferrari
mauricio123

(usa Slackware)

Enviado em 14/07/2020 - 16:29h

Nick-us escreveu:

mauricio123 escreveu:
Qual é o nome do pacote que eu teria que instalar?



Eu compilei a versão atual em desenvolvimento v.1.4.0, mas muita gente usa a Stable v.1.3.5
[b]Mas vamos para as boas notícias![\b] Ela já existe prontinha no Slackware dentro da pasta EXTRA fltk-1.3.5-x86_64-1.txz
Ou pode baixar direto do site do slackware: https://packages.slackware.com/?r=slackware64-current&p=fltk-1.3.5-x86_64-1.txz

Ela também vem com inúmeros exemplos dentro da pasta dela prontinhos!

SITE:
https://www.fltk.org/
https://github.com/fltk/fltk

Fórum: https://groups.google.com/forum/?oldui=1#!forum/fltkgeneral
Manual Completo de Referência:
https://www.fltk.org/doc-1.4/index.html

Se precisar de ajuda, para criar o Slackbuild da última versão, ou compilar posso te ajudar, é facinho mesmo! Compilar os exemplos para aprender é ótimo, são muitos e muitos úteis, eu compilei tudo da versão nova, de dentro da pasta dele mesmo, baixei o source, compilei os exemplos dentro da pasta descompactada para estudar, é tudo make normal e fácil.

Ela também tem um Site cheio de exemplos prontinhos para estudar, é compilar e ver! http://seriss.com/people/erco/fltk/
O Fórum dela é bastante ativo, em Inglês, todos ajudam muito!


Eu me viro com os pacotes pode deixar. Vou instalar ele no Linux Mint. No Slackware, estou esperando a nova versão. Ainda tenho que ver quando vai sair ou se já saiu. O que eu quero fazer é um utilitário para o Linux Mint para Backup de pacotes Deb e demais funções.

Também quero criar um catalogador de funções e códigos em C ou C++, tipo uma agenda pessoal, só que para códigos. Esse sim, eu quero multiplataforma.

___________________________________
Conhecimento não se Leva para o Túmulo.



01 02