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

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

Nick Us
Nick-us

(usa Slackware)

Enviado em 14/07/2020 - 23:51h

mauricio123 escreveu:
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.

Nunca usei o Mint, mas ainda bem que vc sabe se virar, pq nele eu não saberia auxiliar!
Sua idéia de Catalogador de C, C++ é o que estou montando. A Diferença é que expandi isso mais! Eu criei e estou trabalhando em uma Encyclopedia, esse foi o nome que dei, que na verdade é onde armazenarei TUDO o que preciso para consultar rapidamente! Afinal precisamos consultar o que aprendemos pq esqueçemos! Ela não somente guardará dicas de C, C++ como também do Linux, Outras Linguagens, e etc... tudinho no mesmo formato, e parece que está ficando bom!

Abaixo uma Imagem agora com Tema Black. Esse lance de Tema dá Trabalho, embora eu gostei de longe do meu Azul, mas minha vista não se adapta bem ao Azul com Branco, acho lindo, mas não consigo usar. Estou tentando agora Black, já que programo com um Editor de Texto Black.

Esse Tema Black, não lapidado, ou seja 35% do Source com comentários, Ainda com o Tema Blue dentro também, mas acho que deixarei os 2 pq realmente adoro o Azul, está com 103k de tamanho somente! Se eu lapidar removendo umas bibliotecas que não fazem exatamente parte do que estou fazendo, e são apenas para meu Debug, isso cai 20k de tamanho! E talvez caia ainda mais se eu não usar Janela separada para msg, que ainda estou analisando, pois no momento criei Janelas!




  


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

Mauricio Ferrari
maurixnovatrento

(usa Slackware)

Enviado em 15/07/2020 - 00:03h


Parece que tá ficando bom. Mas, vou criar o meu a mesma coisa até por aprendizado e as ideias sempre são diferentes.

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


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

Paulo
paulo1205

(usa Ubuntu)

Enviado em 15/07/2020 - 02:24h

Nick-us escreveu:

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!


Nisto você está certo: tem muito de opinião e subjetividade nas escolhas. Mas isso não significa que não haja aspectos objetivos que qualquer um, mesmo os que têm preferências, podem analisar com objetividade.

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?


Se ele é pesado é discutível. Mas sujo (ainda mais com todas as letras maiúsculas), esquisito e não confiável são julgamentos muito fortes. Por que e como você chegou a essas conclusões?

Eu fico muito curioso sobre quais motivos fizeram com que você usasse esses três adjetivos estranhos. Não consigo perceber a base técnica para que você os usos.

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!


Isso soa um tanto contraditório com as declarações que você fez acima. De novo, seria bom que você pudesse apresentar argumentos que fundamentem essas opiniões antagônicas.

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.


É comum a crítica de que o GTK tem diferentes níveis de suporte e qualidade entre diferentes sistemas, sendo melhor no Linux, um tanto abaixo no Windows, e não muito boa no OSX.

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!


Falta de explicação por falta de explicação, sua mensagem até aqui está cheia de julgamentos mas carente de evidências.

Que mal lhe pergunte, quando você testou a wxWidgets, que versão você usou? Uma versão estável (3.0.x) ou uma de desenvolvimento (3.1.x)? Segundo o site do projeto, é de se esperar que a versão de desenvolvimento tenha bugs e lacunas na documentação.

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!


"Binários de 18kiB" também se consegue com Qt5, conforme mostram os anexos (referentes a uma postagem minha neste fórum em 2017: https://www.vivaolinux.com.br/topico/C-C++/GUI-em-GTK-e-codigo-puro-e-no-QT-e-so-desenhar-no-QTcreat.... Isso é relativamente fácil de consegui quando o grosso do código (a implementação de fato da interface gráfica) reside em bibliotecas dinâmicas. E quanto a criar controles e "mudar tudo", existe flexibilidade em todos esses framkeworks.

Não quero cortar sua empolgação, mas acho que você poderia ser um bocado mais objetivo.

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!


Você definitivamente precisa ver as coisas com mais objetividade. Falando desse jeito, fica até parecendo adolescente que acabou de se encantar com o discurso apaixonado do professor de Geografia e não vê a hora de tomar as rédeas do poder e transformar o mundo junto com os novos companheiros do PSTU (ou PCO, PSOL PC do B etc.)..

BOM Essa é minha Humilde Opinião, e a impressão que tive de todas elas com minha pouca e mínima experiência!


A julgar pela força das palavras que você escolheu (que não se relefete em argumentos fortes), não parece tão humilde assim. Mas tudo bem. A empolgação faz parte do aprendizado.


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


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

Nick Us
Nick-us

(usa Slackware)

Enviado em 15/07/2020 - 17:02h

Paulo responderei a todo o comentário de uma vez e depois então responderei aos pontos mais importantes e objetivos para o fórum.

Primeiramente quero mais uma vez te agradeçer por suas observações e comentários, eles são sim muito importantes!
Seu comentário acima me ajuda bastante. E tenho que concordar com você 100% em suas observações!
Preciso ter muito mais cuidado ao escrever sobre algo, e não se deve mesmo escrever sem antes avaliar o FOCO e o objetivo da informação!

Eu cometi o erro de contar superficialmente minha experiência, e sim, com muita emoção misturada, pelas descobertas, decepções e forma pessoal contando uma história do passo a passo que ocorreu! E mais uma vez tenho que concordar com você que isso não é exatamente uma coisa útil! Espero não cometer esse erro mais uma vez!

Então vou retirar a emoção, a fantasia, deixar ela de lado, e vou tentar responder de forma mais objetiva e útil para que afinal quem estiver lendo possa tirar algum proveito do texto!

paulo1205 escreveu:
Nick-us escreveu:
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?

Se ele é pesado é discutível. Mas sujo (ainda mais com todas as letras maiúsculas), esquisito e não confiável são julgamentos muito fortes. Por que e como você chegou a essas conclusões?

Eu fico muito curioso sobre quais motivos fizeram com que você usasse esses três adjetivos estranhos. Não consigo perceber a base técnica para que você os usos.

Responder a sua observação aqui é difícil, mas tentarei explicar e corrigir os termos errados que usei para explicar!
Primeiramente não existe nenhuma base técnica para o que eu disse. 1º e mais grave erro que cometi nessa explicação! Não testei QT suficientemente para conhecê-la!
Então vamos esquecer os Julgamentos fortes que fiz, porque eles não são mais válidos! Foi um erro emocional!

Mas porque escrevi isso acima então?
Como iniciante, e muito sem experiência, e sem conhecer NENHUMA Interface Gráfica, começei na QT pois ela era indicada por muitas pessoas! Tive dificuldades iniciais porque eu era ainda mais inexperiente!

A 1ª coisa que não gostei foi a criação da janela ser um arquivo separado, necessitando ser importado de uma forma estranha, pareceu para mim algo que nada tinha a ver com C++ quando tentei, mas ignorei isso e tentei usar! Foi quando tive ainda mais problemas porque todos os controles tinham seu próprio sistema que não eram exatamente compatíveis com o C++.

Senti dificuldades na época para colocar um simples texto em um controle! Claro que acabei odiando isso! Porque eu olhava para frente, e vi que eu seria obrigado a estudar toda QT apenas para testá-la. Odiei muito essa situação! E eu não confiava na QT para gastar tanto tempo para fazer alguma coisa! E mais do que claro, não achei documentação fácil dela, não achei nada fácil nela! achei tudo extremamente complicado e difícil, cheio de burocracias!

Mas vale ressaltar que HOJE no momento atual, estou muito mais experiente, estudar a wxWidgets me deu muito mais aprendizado para Interfaces Gráficas. Mas ainda assim, eu não me sinto bem com a QT. Vamos colocar essa questão como pessoal e sem valor algum, visto que 99% é algo pessoal e não quero ninguém influenciado pelo que sinto pela QT.

A 2ª coisa que PESOU, foi de muitas informações dizendo que ela não é gratuita, que existe regras de licença, e entendi que se eu quisesse vender meu aplicativo, entraria nessas regras! Não estudei essa informação a fundo e nem como isso funciona! Apenas minha 1ª Impressão ao ver isso me assustou e não quis mais insistir nisso!

A 3ª coisa que pesou é que achei confusa um monte de versões e aplicações para a mesma coisa, isso me irritou muito! E também me atrapalhou muito, porque dificultou eu saber o que eu deveria usar apenas para começar! Não sabia se eu devia instalar: QtCreator ou QtDesigner ou Outra coisa qualquer.
O Site não é nada intuitivo, poluição de informação, o que confunde quem não tem conhecimento, olhe: https://www.qt.io/product?utm_campaign=Navigation%202019&utm_source=Nav%202019

E nesse quesito até mesmo começar uma Janela foi horrível e frustrante para mim: O que eu uso? QMainWindow OU QtWidgets??? Nunca descobri! E um monte de gente na Internet também não sabe o que usar e nem qual a diferença entre elas! E MESMO Hoje no Google vc não tem respostas, veja: https://www.google.com/search?ei=LUsPX8OEJZXP5OUP0o6XoAY&q=QMainWindow+OR+QtWidgets%3F&oq=QM...

Entenda como me senti frustrado, usando a IDE QtDesigner, para depois descobrir que eu devia usar QtCreator, para depois descobrir que até então estava cada vez mais ficando mais confuso, mais complicado, mais difícil e mais monstruoso para mim, um iniciante completamente inexperiente???

Eu tive problemas até para fazer download: https://www.qt.io/download Não aceitou nenhum email meu! Entende porque a cada coisa que eu tentei fui perdendo cada vez mais a confiança na QT?

Anotação que fiz em 30/05/2020 para mim mesmo:
30/05/2020 18:12 Informações desencontradas, no site qt.io/blog ele diz que a nova versão é 5.13.2 LTS (26/05/2020) e ainda nessa mesma página ele diz que lançou dia 20/05/2020 Qt Creator v.4.12.1 o que é isso? A única coisa que posso compreender é que estão mantendo 2 versões, pra que?

Tudo o que tentei, cada passo que dei, foi muito frustrante! Cada nova pergunta que eu tinha, se transformava em outras 30. Uma verdadeira loucura!
Não existe no Site da QT nada fácil, nem mesmo encontrar AGORA neste momento ONDE eu li sobre licença? Não consegui! Não confio em nada que não seja transparente para mim, porque me passa a impressão de armadilha! Querendo esconder alguma coisa!

E tudo o que eu queria era fazer um pequeno TESTE para saber se eu estudaria ela ou as outras!
Quando usei a palavra SUJO foi por causa disso! Não passou para mim nenhuma boa impressão, de uma Empresa que eu pudesse confiar, acreditar, o que passou para mim foi a sensação de perigo, cautela, e muita dor de cabeça! Tem base técnica? Não não tem! Mas é exatamente o que aconteceu na minha jornada!

O Kde vem com a QtDesigner... Então dúvidas: uso essa ou a QtCreator? Não acho informações para explicar em lugar algum com facilidade. No Site? Não achei nada! Tudo super confuso. Como acha que imaginei como seria o resto depois?

Se o básico de se fazer já era complicado, imagina quando eu tivesse que fazer algo? Não deu pra confiar! Infelizmente! E a única coisa que vi boa nela, são Imagens e o que eu pude desenhar no QtDesigner, não passou disso! Mas isso para mim não é o suficiente, eu precisava criar algo útil e não consegui nada simples!

Então o que pude perceber é que eu perderia MESES aprendendo a fazer algo simples para testar! Apenas para saber se eu devia usar ou não ela! E não gostei nada disso! A Experiência acima que contei não me fez nem um pouco confiar em jogar MESES fora, o medo de me arrepender e o nível de aborrecimento que eu teria se me arrepende-se seria muito alto! E a forma de programar nela é MUITO diferente de praticamente TODAS as outras Interfaces gráficas, Ela tem muitas coisas esquisitas que fogem do tradicional que conheçemos em C++. Ou seja, ela não é C++, para mim QT é uma Linguagem de programação! E eu me recusei a aprender outra linguagem! Li isso também na Internet, algo sobre.

Quanto mais eu lia sobre QT mas me fazia me afastar dela! No Passado A Interface gráfica gerava código C++ depois passou a não fazer mais isso, tudo isso considerei estranho, maldoso, são muitos pequenos detalhes, pequenas movimentações que não curti nadinha.

paulo1205 escreveu:
Nick-us escreveu:
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!


Falta de explicação por falta de explicação, sua mensagem até aqui está cheia de julgamentos mas carente de evidências.

Que mal lhe pergunte, quando você testou a wxWidgets, que versão você usou? Uma versão estável (3.0.x) ou uma de desenvolvimento (3.1.x)? Segundo o site do projeto, é de se esperar que a versão de desenvolvimento tenha bugs e lacunas na documentação.

Respondendo por partes!
Usei a versão 3.1.3 mas quando falo de BUGS me refiro a BUGS não resolvidos em qualquer versão!

1ª Coisa muito ruim: Diferentes formas de fazer a mesma coisa! A Internet lotada de código velho e obsoleto de versão 2.x e o que eles fazem? Dão nomes novos para cada mudança, ficando extremamente confuso de saber o que é obsoleto e o que não é! Uma verdadeira zona!

Apenas 1 das coisas. Mostro 3, mas acredite tem ainda mais formas de fazer isso. Descobrir qual é a correta é um problema!
Macros de Strings, Não sabia se uso wxT ou wxS ou L ou _T ou se converto como estava fazendo, quando li sobre _T disse que era velho e aconselhou usar wxT fui pra ele e ele desaconselha usar pq é velho! Fiquei perdido! Pois é! Frustrante e ainda mais irritante? SIM!

E a confusão não para por ai, embora ele diz que wxT é Obsoleto que deve ser substituido, MAS EM TODOS os exemplos nos documentos novos eles usam wxT.
wxMessageBox(wxS("Aparecida"));
wxMessageBox(wxT("Aparecida")); // Ela está ficando obsoleta, use a de cima!
wxMessageBox(_T("Aparecida"))

Tenta um novato entender qual dos 2 é o novo qual é o velho, com tantos exemplos onde cada um atual ou velho se misturam. Uso ; não uso? coloco wx? Não coloco? Onde é a posição correta disso? Em cima? Embaixo? Apanhei estudando apenas essa linha! gastei 2 dias para entender isso! Será que deveria ser assim?
wxIMPLEMENT_APP(MyProgram);
IMPLEMENT_APP(MyProgram)

Quando ele explica métodos, syntaxes em sua documentação ele mistura a Syntax com explicações no meio o que cria uma verdadeira confusão!

Anotação minha de 29/05/2020 05:08
Estou me decepcionando com ela a cada dia, ela não é nem de longe o que imaginei que seria, ela não faz coisas básicas, como colorir um simples TextCtrl, ou selecionar um Grid de forma decente!

Não curti colocar um controle qualquer em um Form e ele ficar expandido ocupando todo o Form, desobedecendo simples regra de tamanho! Me forçando a ter outro controle para finalmente ele obedecer o tamanho correto!

wxGrid não tem opção para pegar o valor da Célula Selecionada, te obrigando a criar meios para que isso funcione! (01/05/2020 09:53)

WxTextCtrl
HEIGHT Não funciona! De nada adianta definir a altura do controle, pq ele define o espaço do texto! Só funciona no Windows, mais uma vez eles só se preocupam com quem usa Windows e dane-se quem usa Linux, porque NUNCA vão consertar isso! (30/05/2020 01:06)

MAX E MIN SIZE: No CodeBlocks não servem para absolutamente nada! Se bem que tudo no Codeblocks para ela usa código velho e Obsoleto (30/05/2020 01:07)

Não dá pra colorir o fundo do texto quando usa 1 linha normal, ele só aceita colorir qdo é Multiline! Que decepção total! Não consigo acreditar nisso! (29/05/2020 04:41)

Não posso usar o comando SetMaxLength se eu atribuir wxTE_MULTILINE (23/03/2020 18:37)
E em wxTextEntry::SetMaxLength informa: Note that in wxGTK this function may only be used with single line text controls.

Na documentação v.2.4 possue comandos que não existem na documentação nova, exemplo é o wxChoice, comandos como Clear, Append que descobri em outro Site e descobri que existe na 2.4 são muitos comandos que não adicionaram explicações ou sequer sua existência e são importantes! (16/03/2020 22:20)[/quote]

No Fórum, da wxWidgets eles são atenciosos, o que me ajudou muito, são prestativos, mas ainda assim não é o suficiente para um bom trabalho. Veja meu problema com um simples controle de texto:
https://forums.wxwidgets.org/viewtopic.php?p=199158#p199158

Reclamo da dificuldade da documentação: https://forums.wxwidgets.org/viewtopic.php?f=27&t=46956

Minha enorme decepção com o Widget instance-checking: https://forums.wxwidgets.org/viewtopic.php?f=1&t=47038
O que fez eu perder a confiança nela, me dando a impressão que eles estavam dificultando coisas simples para parecerem importantes!

E mesmo assim, me decepcionando com a wxWidgets, não achei perda de tempo aprender sobre ela! Gastei meses estudando ela, fiz 6 programas nela funcionais, e o que estudei nela, serviu para a FLTK, então não foi tempo gasto, porque eu estava aprendendo C++ diferente do que aconteceria se eu estivesse estudado QT.

O Fórum da wxWidgets é muito bom mesmo, me ajudaram, foram atenciosos, mas Fórum são pessoas! wxWidgets é uma Ferramenta, e ela quem deveria ser o que esperei dela!

Em anexo uma imagem com defeitos nas bordas, brancas ao redor da aba do grid, e que nem sei se é possível retirar!

Tudo o que escrevi acima é minha experiência pessoal! É claro que existem muito mais fatores que nem mesmo anotei, ou que estão esparramados em meu computador, foquei aqui no que eu lembro ainda! Não sei se sou bom em contar ou explicar com as melhores palavras essa experiência, mas é o que estou tentando! Meu objetivo é que outras pessoas ao lerem, façam suas próprias conclusões e não percam tempo com o que não querem, e claro, tudo é pessoal, depende de como cada um aprende, ou com o que cada um se identifica mais!

Eu acredito que meu Texto sirva também para essas 2 Empresas analisarem o lado do usuário ao se depararem com ela!

Minha Cautela em relação a estudar qualquer coisa demorada é perder tempo! Me arrependi muito de gastar muitos anos aprendendo Delphi no RadStudio, porque HOJE nunca mais usarei! Me achei um programador, me senti como um programador, para depois descobrir ao estudar C que eu não sabia nem o que era uma variável direito! Foi muito triste! Isso porque a RadStudio fazia tudo! O que eu era? Apenas um macaco que arrastava botões em uma Janela! E achava que estava programando!

Minha cautela em gastar meses em algo inútil vem disso! No momento atual tenho usado C++ para quase tudo e não o C. Porém foi C quem me mostrou como as coisas funcionam! O que é uma LETRA! C é pequenino, lindo de estudar, aprendi por ele, que quando existe algo fácil, por trás existe uma função que reduziu aquilo para você! Pois no C temos que fazer muita coisa na mão! E adorei isso!

E a parte ainda mais legal, é que se não consigo fazer, posso sempre recorrer ao confiável C que nele dá pra fazer! Sou muito novato em C, mas senti a cada aprendizado o poder que ele te dá, o ensinamento prático que ele te oferece, e a enorme base que usamos para aprender qualquer outra coisa!

Bom espero que meu Texto agora tenha alguma utilidade!

Mais uma vez quero agradecer ao Paulo, aqui do fórum, porque vc não faz idéia, sem suas explicações, seus detalhamentos, seus puxões de orelha, respondendo tanto a mim quanto a muitas outras pessoas aqui no fórum é que tem me permitido avançar, aprender, entender, me tornar um programador a cada dia!

99% do que sei de C, C++ aprendi aqui com o Paulo, acredite, pode parecer perguntas simples para outros, mas que para mim eram verdadeiros MUROS enormes sem saída que me deixavam tristes, completamente perdido. A cada pergunta que eu fazia, era uma situação que eu não estava nada bem, pq não sabia se teria respostas se eu poderia continuar, se eu conseguiria! Era como ver um Sonho na beira de um principício que poderia cair lá em baixo!

Então aparece o Paulo com as respostas perfeitas, completas, seguras, criando a ponte, abrindo a porta e dizendo: É por aqui! Continue sua jornada!

De verdade, muito Obrigado!


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

Mauricio Ferrari
maurixnovatrento

(usa Slackware)

Enviado em 15/07/2020 - 20:54h


Olha não vou me meter nessa conversa. Mas meu interesse e a interface ter boa documentação, simplicidade e facilidade de uso.

Deixa eu ver QT, GTK, wxWidgets e FLTK.

Não quero saber de beleza, quero saber de não passar trabalho na hora de usar uma opção. Vou começar pelo FLTK, depois se precisar, testo outras. Mas, quero também, pouca manutenção e compatibilidade com versões linux futuras, tendo em vista que quero inserir o menos de dependências possíveis.

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


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

Mauricio Ferrari
maurixnovatrento

(usa Slackware)

Enviado em 15/07/2020 - 21:05h


Queria saber qual é a recomendação para catalogar os códigos no meu programa? Eu tava pensando em exporta-los em arquivos separados, porque se exportar em um chega uma hora que o arquivo fica muito grande.

Também, se não é uma ideia muito ruim, usar json para organizar as opções de configuração do programa. Se não, o que recomendam?

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


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

Nick Us
Nick-us

(usa Slackware)

Enviado em 16/07/2020 - 04:13h

mauricio123 escreveu:
Queria saber qual é a recomendação para catalogar os códigos no meu programa? Eu tava pensando em exporta-los em arquivos separados, porque se exportar em um chega uma hora que o arquivo fica muito grande.
Também, se não é uma ideia muito ruim, usar json para organizar as opções de configuração do programa. Se não, o que recomendam?


Isso também tem toques pessoais. Vou dizer o que escolhi nessa vasta opções de escolhas!
Eu criei um Database baseado em um único arquivo. E ele é Global, como eu disse! Inicialmente trata-se de um arquivo simples de texto visível e editável, para que inicialmente acompanhe seu funcionamento! Passado a parte de testes, ainda com a mesma Base para salvar, ele estará criptografado, talvez eu o coloque como binário também!

Eu poderia salvar configurações no mesmo arquivo! Tipo nas Primeiras linhas, visto que gosto de acessar o arquivo caracter by caracter! Isso porque uso teclas especiais do ASCII para separar registros campos e etc... isso facilita eu separar o que bem entender! Ou seja, minha própria organização e sistema!

Como não gosto de Java, nunca usaria json. Outro motivo é que gosto de eu definir como arquivar. Talvez até usa-se um formato do tipo .ini mesmo. Mas para mim como disse não é prático.

Não entendi o que quer dizer qdo fala exportar! Seu programa pode exportar o que quiser, visto que vc pode definir essa saída!
O Meu exportará para Html, Texto e csv, formatos que mais uso! E já tudo bonitinho e organizado!

Mas se vc está falando na Organização do seu Source, ou seja em arquivos, .c, .cpp, .h... Isso também é meio que pessoal!

Eu gosto de usar 1 arquivo para tudo! Odeio separação de arquivos, acho necessário somente em programas grandes, minha atual Encyclopedia possue 2 mil linhas somente, acho horrível ficar procurando alguma coisa em um Editor cheio de arquivos abertos para mecher ou debugar meu programa! O que costumo fazer é percorrer suas linhas e analisar, acho visivelmente mais fácil!

mas é questão de gosto, ou necessidade, ou de divisão de projeto qdo é o caso de terem outras pessoas fazendo a mesma coisa!

Gosto de pouca coisa escrita, poucas chamadas a funções, poucos includes, não gosto de bibliotecas prontas de terceiros, prefiro as Standard.


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

Nick Us
Nick-us

(usa Slackware)

Enviado em 16/07/2020 - 04:21h

mauricio123 escreveu:
Mas, quero também, pouca manutenção e compatibilidade com versões linux futuras, tendo em vista que quero inserir o menos de dependências possíveis.

Ahhh eu esqueçi de falar sobre isso também, odeio dependências gigantes, motivo pelo qual escolhi FLTK.

Compatibilidade penso que todas são iguais! São também cross-platform. Um fator que vc precisa analisar em Compatibilidade, isso dependerá muito também do tipo de servidor gráfico que vc estiver usando, leve isso em conta! Porque Bibliotecas costumam se comunicar com área de transferência as vezes e outros fatores do sistema operacional. Inclusive claro recursos mais avançados de renderização ou algo do tipo!




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

Mauricio Ferrari
maurixnovatrento

(usa Slackware)

Enviado em 16/07/2020 - 07:49h


Mas se vc está falando na Organização do seu Source, ou seja em arquivos, .c, .cpp, .h... Isso também é meio que pessoal!


na verdade estava falando dos códigos que serão registrados no sistema e exportados eu um arquivo só para ele. A única coisa que eu separo em relação ao source é funções que não necessariamente faz parte do código, mas uma função independente de atributos vindos do código principal. Ele só é acessado como uma função auxiliar e geralmente não precisa ser alterado. E eu separo tudo o que tem essa característica. Como programava só para terminal, eu fiz bastante disso, cls(), size(), ...

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


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

Mauricio Ferrari
maurixnovatrento

(usa Slackware)

Enviado em 16/07/2020 - 07:52h


Html, Texto e csv,


qual deles é mais fácil importar no c ou c++?

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


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

Nick Us
Nick-us

(usa Slackware)

Enviado em 16/07/2020 - 16:18h

mauricio123 escreveu:
Html, Texto e csv,

qual deles é mais fácil importar no c ou c++?

Na teoria qualquer um é fácil, na hora de escrever texto e csv tem menos coisas para olhar! Eu vou te mostrar uma rotina que faço. Lembrando que leio caracter por caracter devido a complexidade do texto que uso!

Mas quem pode ler um arquivo linha a linha é ainda mais fácil! Embora ainda assim me sinto mais seguro caracter by caracter!

O Código abaixo é o que uso para carregar de um arquivo TODO o meu Database no momento! Está em C++ mas é a mesma idéia que eu inicialmente fiz em C, mudando apenas a leitura de arquivos em C e o tipo de variável, pois isso abaixo tanto em C ou C++ é a mesma idéia!
Se vc reparar, Eu separo Registros com o Caracter Especial RS, Campos com o Caracter Especial US, Coloco um Finalizador ETX (Desnecessário), pois não precisa disso, coloquei somente para visualmente olhar o arquivo com mais facilidade ao calcular o que eu queria, provisóriamente.
Então leio e vou montando a tabela em um vector (Database)

Quando isso era em C, eu usei Struct as vezes usei Matriz, usei char no lugar de string. E eu gosto dessa Técnica, claro até alguém me mostrar alguma melhor!
Para exportar é ainda mais fácil. Pq vc já tem os campos separados!]

Se fosse um arquivo csv, obviamente no lugar de RS, US, ETX eu colocaria VÍRGULA, ASPAS para trazer corretamente óbvio!
Se for texto, tem que ver o que separa, ESPAÇOS? LINHAS? Alguma outra coisa?
Mas pode ver que é simples fazer isso!

Quando meu arquivo tiver uns 500 registros, ele precisará ser descriptografado primeiro, e possívelmente será lido do formato binário, é que no momento, estou tratando ele visualmente para compreendê-lo, enquanto não tem amadurecimento suficiente para eu saber quantos campos eu preciso, visto que já adicionei e removi campos disso muitas vezes conforme vou necessitando!

Vale lembrar que inicialmente tudo isso abaixo era C... O que me levou a usar C++ é que Bibliotecas são em C++, e uma resposta do Paulo aqui no Fórum, me trouxe mais segurança com o C++, no início eu estava muito confuso, e não confiava no C++, achei ele estranho, ele implicava comigo com tudo o que eu escrevia se negando a compilar, C++ me irritou muito no início, cheio de regrinhas! Mas a segurança que o Paulo passou com suas respostas precisas a respeito do C++, fui dando uma chance para ele, sou obrigado a concordar que muitos métodos em C++ são mais fáceis, no momento C++ não parece bagunçar o desempenho nem o tamanho dos meus binários, então porque não usar né?

{ // Carrega Encyclopedia.db para variável Database e Atualiza o Grid (12/07/2020 19:23)
std::ifstream MyFile(PathDatabase);
if(MyFile.is_open()) {
std::string Registered, Modified, Title, Pendency, Groups, Tags, Tip, Folder;
for(int Caracter, US = -1; (Caracter = MyFile.get()) != EOF;) { // Leio o arquivo caracter por caracter
switch(US) {
case 0: // Registered
if(Caracter != 31) // STEP II Estou no 1º Caracter do Campo Registered | != 31 Ele não é o Caracter US
Registered += Caracter; // STEP III Alimento o campo do Database.
else // STEP IV É US Caracter 31
US++; // Vou para o próximo campo, US = 1
break;

case 1: // Modified
if(Caracter != 31)
Modified += Caracter;
else
US++;
break;

case 2: // Title
if(Caracter != 31)
Title += Caracter;
else
US++;
break;

case 3: // Pendency
if(Caracter != 31)
Pendency += Caracter;
else
US++;
break;

case 4: // Groups
if(Caracter != 31)
Groups += Caracter;
else
US++;
break;

case 5: // Tags
if(Caracter != 31)
Tags += Caracter;
else
US++;
break;

case 6: // Tip
if(Caracter != 31)
Tip += Caracter;
else
US++;
break;

case 7: // Folder
if(Caracter != 3) // STEP V Enquanto eu não encontro ETX(Final do Registro)
Folder += Caracter;
else { // STEP VI Encontrei ETX(Final do Registro)
Database.push_back(std::vector<std::string>{Registered, Modified, Title, Pendency, Groups, Tags, Tip, Folder}); // Gravo a Linha
Registered.clear();
Modified.clear();
Title.clear();
Pendency.clear();
Groups.clear();
Tags.clear();
Tip.clear();
Folder.clear();
US = -1; // Reseto o Campo
}

default: // STEP VI Recomeço a executar STEP I
if(Caracter == 30) // STEP I Ignoro todos os caracteres até encontrar o 1º RS, caracter 30
US++; // Informo que estou no 1º Campo do Registro Agora
// Nesta Etapa o próximo caracter é o 1º Caracter do Campo Registered
} // switch
} // for
MyFile.close();
Grid->rows(Database.size()); // Informo a Qtd de Linhas que o Grid terá para o seu constructor
Grid->row_height_all(20); // Altura das Linhas
std::string QtdReg = std::to_string(Database.size()) + " Registers";
BxQtReg->copy_label(QtdReg.c_str());
} // if
}



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

Mauricio Ferrari
maurixnovatrento

(usa Slackware)

Enviado em 17/07/2020 - 09:41h


Bom vou ter que usar meus métodos pois não estou muito familiarizado no C++. Vou optar por arquivos de texto comum até achar a melhor opção. No princípio vou fazer em C, mas a medida que eu me familiarizar no C++ vou atualizando.

Valeu pelas dicas.

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



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts