LusoRobótica - Robótica em Português

Software => C/C++ => Tópico iniciado por: artur36 em 15 de Agosto de 2016, 20:33

Título: IDE para C++ e como criar GUI
Enviado por: artur36 em 15 de Agosto de 2016, 20:33
Boas.
Que IDE aconselham para programar em C++  se possível com versão idêntica em windows e linux?
Existe uma maneira simples de criar GUI em C++, tipo Visual BASIC?
Já agora livros/tutoriais que aconselhem para programação informática em C/C++ de preferência que incluam a criação de GUI e bons exercícios/projectos para experimentar?
A ideia será criar pequenos programas informáticos para me manter com alguma prática na programação e que me permitam também a interligação com microcontroladores para recepção de dados e seu tratamento.

Enviado do meu VF-696 através de Tapatalk

Título: Re: IDE para C++ e como criar GUI
Enviado por: jm_araujo em 15 de Agosto de 2016, 20:59
Boas.
Que IDE aconselham para programar em C++  se possível com versão idêntica em windows e linux?
Eclipse.

A ideia será criar pequenos programas informáticos para me manter com alguma prática na programação e que me permitam também a interligação com microcontroladores para recepção de dados e seu tratamento.
Isso já "não se usa". O que está a dar e tratar dos dados e da sua apresentação em ambiente Web. De certa forma até é mais fácil.

Quanto ao resto não tenho experiência para te poder ajudar.

Título: Re: IDE para C++ e como criar GUI
Enviado por: artur36 em 15 de Agosto de 2016, 21:23


Isso já "não se usa". O que está a dar e tratar dos dados e da sua apresentação em ambiente Web. De certa forma até é mais fácil.

Até acredito que traga vantagens o envio de dados para a nuvem, no entanto a minha opinião para aplicações "normais" é que só vem complicar mais o processo.
O processamento dos dados tenho sempre de o fazer localmente, portanto a não ser que precise de aquisição remota em "tempo real" é-me muito mais fácil fazer a aquisição directamente para o dispositivo onde vou fazer o processamento ou então para um cartão SD que analiso mais tarde.

Enviado do meu VF-696 através de Tapatalk

Título: Re: IDE para C++ e como criar GUI
Enviado por: jm_araujo em 15 de Agosto de 2016, 21:40
Se depois precisas de GUI multi-plataforma como falavas inicialmente, simplifica bastante.
Para capturares dados série no PC qualquer script python serve e corre em qq SO, e se é para análise pura e dura mais vale uma folha de cálculo (Excel) ou software científico (Matlab), dependendo da complexidade. E a "cloud" não têm de ser mesmo na cloud, um servidor web é a coisa mais fácil de colocar ao serviço, mesmo para uso local.
Para apresentação não consegues bater as capacidades do browser em termos de simplicidade e compatibilidade com múltiplas plataformas.

Com a vantagem que ficas com um set de skills que são muito apetecíveis no que está para vir.
Título: Re: IDE para C++ e como criar GUI
Enviado por: jm_araujo em 16 de Agosto de 2016, 09:14
(não faço edit porque já passou muito tempo)

Já agora o site que em que se deu o momento em que passei a achar que o caminho seria via web/browser foi este: http://chilipeppr.com/grbl (http://chilipeppr.com/grbl)
Título: Re: IDE para C++ e como criar GUI
Enviado por: metRo_ em 16 de Agosto de 2016, 09:37
Para C++ acho o Qt Creator completo e mais leve que o eclipse.
O Qt tem também uma parte para GUIs muito boa e intuitiva e funciona em Linux, Windows e OSx.

Mas ja aprendeste C ou C++?
Título: Re: IDE para C++ e como criar GUI
Enviado por: KammutierSpule em 16 de Agosto de 2016, 10:31
+1 Qt Creator

Mas nao sabendo C/C++ ... talvez tentando compilar os exemplos e alterar.

Atencao q o QT tem uma "coisa" chamada QtQuick para desenho de UIs que difere totalmente da maneira tradicional de criacao de UIs para "desktop".

A minha sugestao, e para iniciantes, se calhar e' melhor nao usar o QtQuick. Ou entao entender bem a diferenca entre os dois.
Pessoalmente, nunca consegui usar QtQuick, mas tambem nao perdi muito tempo com ele :)
Título: Re: IDE para C++ e como criar GUI
Enviado por: artur36 em 16 de Agosto de 2016, 11:51
Se depois precisas de GUI multi-plataforma como falavas inicialmente, simplifica bastante.
O objectivo não é ter a mesma GUI em multiplataformas mas sim ter o mesmo ambiente de desenvolvimento em Windows e Linux para que não tenha de estar constantemente a treinar nas duas plataformas, não tenho ideias num futuro próximo de desenvolver aplicações com intuito comercial pelo que as utilizações serão esporádicas.
Citar
Para capturares dados série no PC qualquer script python serve e corre em qq SO, e se é para análise pura e dura mais vale uma folha de cálculo (Excel) ou software científico (Matlab), dependendo da complexidade.
Sei que na maior parte dos usos que lhe irei dar bastava exportar como CSV e tratar os dados numa folha de cálculo, mas assim vou mantendo a programação treinada para não esquecer. o uso de Python implica a aprendizagem de uma nova linguagem o que quero evitar pois o tempo que tenho disponível não é muito, logo mais vale apostar em melhorar os conhecimentos que já tenho do que adquirir novos.
Citar
E a "cloud" não têm de ser mesmo na cloud, um servidor web é a coisa mais fácil de colocar ao serviço, mesmo para uso local.
Para apresentação não consegues bater as capacidades do browser em termos de simplicidade e compatibilidade com múltiplas plataformas.
Com a vantagem que ficas com um set de skills que são muito apetecíveis no que está para vir.
Sim eu compreendo isso, por exemplo se usa-se um Raspberry pi para aquisição de dados conseguia fazer processamento de dados directo e transmissão quase em tempo real usando o próprio Raspberry como , mas obrigava-me a adquirir novos skills, apesar de considerar esses skills muito apetecíveis quer para mim quer para o mercado de trabalho tenho consciência que o tempo que num futuro próximo posso dedicar à sua aprendizagem é melhor investido na consolidação dos conhecimentos que já tenho.

Citar
Já agora o site que em que se deu o momento em que passei a achar que o caminho seria via web/browser foi este: http://chilipeppr.com/grbl (http://chilipeppr.com/grbl)

A minha opinião desse site é a mesma que tenho sobre impressão 3D, IOT e "drones", conceitos muito bons e com muitos usos\potencialidades mas que a comunidade está a levar a extremos quase de "estupidez" para justificar a aquisição\investimento que fizeram.
Título: Re: IDE para C++ e como criar GUI
Enviado por: artur36 em 16 de Agosto de 2016, 11:58
Mas ja aprendeste C ou C++?

Já aprendi as bases do C\C++, tive uma cadeira de iniciação à programação onde as bases foram dadas em C, tendo depois passado para o Visual Basic onde cheguei a fazer um programa com implementação de uma base de dados em Sql. Depois disso nunca mais peguei a sério na programação para PC, tendo apenas programado Pic's em C.
Título: Re: IDE para C++ e como criar GUI
Enviado por: thx1011 em 16 de Agosto de 2016, 14:56
Boas:

 Irás sempre necessitar do C/C++ e talvez assembler para a parte da programação de sistemas embebidos. Se não te quiseres especializar especificamente numa toolchain de um fabricante em específico, sinceramente recomendo-te o platformio.io e o IDE associado.

 Com o platformio podes com as mesmas ferramentas trabalhares com targets diferentes, desde o Arduino, Attiny e esp8266, entre outros. Supera em muito o IDE do Arduino, e outros mais específicos, nomeadamente o Eclipse e o NetBeans.

 Agora para aplicações Desktop, não percas tempo num ambiente específico só para desktop. Com o electron.atom.io, podes desenvolver logo para Desktop e Web de uma só vez. Isto usa Javascript e node.js, mas depois de aprenderes, ficas a saber uma linguagem que é identica tanto no front-end como no backend... :)

Título: Re: IDE para C++ e como criar GUI
Enviado por: artur36 em 16 de Agosto de 2016, 15:43


Boas:

 Irás sempre necessitar do C/C++ e talvez assembler para a parte da programação de sistemas embebidos. Se não te quiseres especializar especificamente numa toolchain de um fabricante em específico, sinceramente recomendo-te o platformio.io e o IDE associado.

 Com o platformio podes com as mesmas ferramentas trabalhares com targets diferentes, desde o Arduino, Attiny e esp8266, entre outros. Supera em muito o IDE do Arduino, e outros mais específicos, nomeadamente o Eclipse e o NetBeans.
Para microcontroladores não tenho problemas de momento, como uso microcontroladores PIC uso mplab e programo directamente sem bootloaders e programado em C (assembly programei apenas alguns exercícios no curso, percebo como funciona mas n tenho necessidade no dia a dia de usar), sem problemas até ver portanto é para manter.
Título: Re: IDE para C++ e como criar GUI
Enviado por: Kristey em 08 de Abril de 2017, 18:05
Já agora alguém sabe como podemos embeber código C/C++ numa GUI para a utilizar um em OSX (Mac)?
Título: Re: IDE para C++ e como criar GUI
Enviado por: senso em 08 de Abril de 2017, 20:01
Fazes o GUI em C/C++ ?
Ou usas python e meia duzia de imports, atiras ai matplotlib e numpy e qualquer coisa com números está despachada.
Título: Re: IDE para C++ e como criar GUI
Enviado por: Kristey em 09 de Abril de 2017, 00:31
Não faço o GUI em C/C++
Eu tenho código em C/C++ que quero dar-lhe um ambiente gráfico.
E usar em mac, mas para isso ou programo tudo em Objective-C que não tenho tempo de aprender, ou arranjo maneira de embeber o que tenho feito em C num ambiente gráfico feito em Objectiv C /Swift
Título: Re: IDE para C++ e como criar GUI
Enviado por: KammutierSpule em 09 de Abril de 2017, 18:26
o Qt é multiplataforma
http://doc.qt.io/qt-5/supported-platforms.html

podes usar o codigo que tens em C e compilar no Mac e crias aí o GUI.

"arranjo maneira de embeber o que tenho feito em C num ambiente gráfico feito em Objectiv C /Swift"

Nao conheco maneira de correr C em script, acho que nao vale a pena... só pensar nas dores de cabeça que isso ia dar :)
Título: Re: IDE para C++ e como criar GUI
Enviado por: Njay em 09 de Abril de 2017, 21:19
A não ser que tenhas requisitos especiais de performance, acho que hoje em dia não se justifica usar C/C++ ou qualquer outra linguagem compilada. A facilidade e rapidez com que se faz um programa em python ou TCL, mesmo com interface gráfica (tk), é brutal. E ainda se fica com algo que é basicamente multiplataforma sem recompilar, e que pode ser actualizada facilmente até mesmo em runtime.

Mesmo no que diz respeito à interface gráfica, o Tk tem muito mais performance do que vocês podem imaginar. Existe uma widget, o canvas, que suporta desenho vectorial, e aquela cena é rápida. Só ainda não encontrei um bom editor de GUIs Tk, senão recomendava-vos. Mesmo assim não faço em C/C++ o que posso fazer em (no meu caso) TCL.
Título: Re: IDE para C++ e como criar GUI
Enviado por: Kristey em 11 de Abril de 2017, 00:14
É uma aplicação para processamento de dados  e tempo em tempo real.
Título: Re: IDE para C++ e como criar GUI
Enviado por: Njay em 11 de Abril de 2017, 15:32
Isso por sí só não quer dizer nada, já fiz muitas aplicações de processamento de dados em tempo real em scripting.

Mesmo às vezes é mais "rentável" fazer um pequeno "core" em C e usá-lo a partir da linguagem do que ir fazer tudo em C. Por exemplo, tinha uma aplicação onde precisava de ordenar muitos milhares de nomes de forma a que parecesse "instantânea" ao utilizador, só que tinha que converter as letras acentuadas para a versão não-acentuada na comparação; neste caso fiz só uma função em C para fazer essa conversão e resto continuou a ser TCL (isto foi há mais de 10 anos, se fosse hoje nem me dava ao trabalho de fazer aquilo em C!).

Ainda há pouco tempo fiz profissionalmente uma aplicação gráfica em TCL/Tk que monitora em tempo real o estado de gravação e não só de milhares de chamadas telefónicas; o CPU que aquilo usa é tão baixo que nem se percebe no meio do "ruido".
Também profissionalmente fiz ainda uma aplicação de teste funcional e de stress em TCL/Tk, que se liga a um switch de telefonia IP (100% C/C++) e simula e monitoriza, em tempo real, um conjunto de IVRs ("robots" de telefonia, que fazem chamadas, atendem, metem audio a tocar, enviam e processam digitos, etc etc) assim como o estado do switch. Ela mete por exemplo 900 novas chamadas a serem estabelecidas por segundo e a ocorrer em simultâneo, envolvendo 900 IVRs de 3 tipos diferentes, todos constantemente a fazer alguma coisa, e a aplicação tem que processar os respectivos eventos de controlo (pode não parecer mas uma só chamada telefónica tem vários eventos associados, só o estabelecimento envolve 5 ou 6 eventos). Paralelamente a isto a aplicação ainda monitoriza e processa dados das chamadas obtidas directamente do switch por outros protocolos, e mostra constantemente tudo ao utilizador em tempo real numa GUI, incluindo reportar o que cada um dos 900 IVRs está a fazer. A comunicação com o switch é toda via TCP/IP. A aplicação foi feita em 2 processos, um que se liga ao switch e faz o teste a partir dum "script de telefonia" (inventei uma linguagem só para isto) e outro que tem a GUI e interage com o utilizador, ligando-se por TCP/IP ao 1º. No maquinão que eu tinha (a minha estação de trabalho) nunca vi esta aplicação ocupar mais de 20% de CPU, no total de ambos os processos (e mesmo assim já era preciso estar a puxar bem a sério por ela). Uma instância desta aplicação (podiam-se lançar N) era suficiente para deixar o switch em stress.

Numa linguagem de scripting podes carregar código em runtime. Normalmente tenho um botão "reload" que me re-carrega o código que altero, nem preciso de a fechar e voltar a abrir para ver as alterações (quando não são na parte que está actualmente visível ao utilizador).

Também recentemente tive que fazer um servidor de IV (infravermelhos) para o RaspebrryPI, um servidor que fala com um dispositivo USB que capta e transmite comandos IV. Acham que fui andar à procura do cross-compiler, montar o ambiente de desenvolvimento e fazer C/C++? Fiz apt-get install tcl , mapeei uma directoria de Windows no PI onde tinha o código que desenvolvia no meu editor de código favorito em Windows e em 15 minutos já estava a falar com o dispositivo.

"Vocês" falam muito em C/C++ e C# e tal, mas não fazem ideia do potencial, facilidade de utilização e flexibilidade duma linguagem de scripting...
Título: Re: IDE para C++ e como criar GUI
Enviado por: senso em 11 de Abril de 2017, 16:35
(https://imgs.xkcd.com/comics/python.png)
Título: Re: IDE para C++ e como criar GUI
Enviado por: KammutierSpule em 11 de Abril de 2017, 16:59
So sei programar em C e C++, vergonha :/
Python esta na lista..

@NJay, o Python aparenta ser mais popular que o TLC. Queres comentar porque e que diferencas ah relativamente as comunidades e onde sao usadas as linguagens?
Título: Re: IDE para C++ e como criar GUI
Enviado por: Njay em 11 de Abril de 2017, 17:22
Isto é a minha opinião. O python é uma linguagem mais "certinha", com um aspecto mais tradicional, foi desenhada para ajudar a programar-se bem (boas práticas) e facilmente suporta o desenvolvimento de sistemas muito complexos e extensos. O TCL é um bocado como LISP, extrema flexibilidade, sem suporte a nenhum modelo especial de programação, é muito "directo" com poucos tipos de dados (string, lista e tabela de hash), e se queres fazer coisas complexas/extensas tens que saber o que estás a fazer para não te "perderes". Pouco mudou desde que foi desenhado praí nos anos 80; acho que há décadas que não há quebra de compatibilidade, e na verdade posso dizer que não foi alterado porque sendo muito simples não tem tido grande necessidade disso. O python tende a ser mais rápido que TCL, não que isso importe muito hoje em dia.

Para as coisas que faço (baixa/média complexidade) gosto mais de TCL, não só porque já programo naquilo há mais de 15 anos mas também porque a linguagem em si é muito pequena, a sintaxe extremamente simples, e o interpretador, já com uns quantos add-ons incluindo o Tk, é muito pequeno e não precisa de ser instalado, é só copiar (tenho um zip com o TCL8.3 p/ Win que tem só 3 MB, até está neste tópico: https://lusorobotica.com/index.php?topic=8032.0 ). O consumo de RAM to TCL/Tk é bastante baixo face ao que seria de esperar.

Penso que o TCL tem má fama por causa do fraco modelo de programação, muita gente nem o deve considerar "uma linguagem de programação a sério". Há quem diga que o melhor do TCL é o Tk :) (o Tk apareceu com o TCL). Pessoalmente pouco me importa, é duma produtividade e simplicidade atrozes e já tenho mtos anos daquilo. "With great power comes great responsability". A quem entrar agora até sou capaz de recomendar python por ser mais moderno, mas vale a pena aprender e dominar qualquer linguagem "genérica" e multiplataforma de scripting/interpretada. Quando é preciso muita performance, faço funções em C que são expostas em TCL; qualquer linguagem de scripting suporta isso.
Título: Re: IDE para C++ e como criar GUI
Enviado por: Kristey em 12 de Abril de 2017, 10:07
Njay, como ja tinha dito, parte da solução já esta feita em C/C++ e portanto a parte que falta não é difícil de completar mesmo em C/C++.
Mais acrescento que nem sei como fazer aquilo fora de C, tendo em conta que usa funções de POSIX/UNIX.

So preciso de uma forma de aquilo depois apresentar os dados que eu quero num ambiente gráfico...
Nada mais.
Solução ou desenvolver em Objective-C (que teria de aprender), ou dar uma cara ao programa em C.
Se não... vai mesmo pela linha de comandos e pronto...


O python é algo que utilizo, tal como o Arduino, quando é para fazer rápido, contudo agora estou entre a espada e a parede num projecto onde usei Python para um raspebrry. Alguém gosto do que fiz, e quer "vender aquilo".
Ora... so o bao comprar uma vez porque o código está la todo escarrapachado e não ha forma pelo que vi de criar um executável daquilo....
Título: Re: IDE para C++ e como criar GUI
Enviado por: jm_araujo em 12 de Abril de 2017, 10:31
O python é algo que utilizo, tal como o Arduino, quando é para fazer rápido, contudo agora estou entre a espada e a parede num projecto onde usei Python para um raspebrry. Alguém gosto do que fiz, e quer "vender aquilo".
Ora... so o bao comprar uma vez porque o código está la todo escarrapachado e não ha forma pelo que vi de criar um executável daquilo....

http://stackoverflow.com/questions/261638/how-do-i-protect-python-code
Título: Re: IDE para C++ e como criar GUI
Enviado por: Njay em 12 de Abril de 2017, 11:11
Então achas que se criares um executável daquilo ficas com o código protegido? Se é para copiar o produto, o que eu fazia era criar cópias do cartão SD... não tens como fugir, não interessa se o código está feito em brainfuck e encriptado por um computador quântico. O método de protecção mais simples parece-me ser colar ou mesmo soldar o cartão ao PI, e não permitir nenhum tipo de login. Depois podes adicionar mais uma barreira que é uma chave de hw. Mas a tudo é possível dar a volta; agora só depende de quanto vale a coisa e quanto custa cracká-la.

Em relação a meter um programa numa linguagem de scripting a falar com qualquer outro programa, há uma coisa muito simples que eu faço muito, que é simplesmente usar o stdio para essa interface. Em TCL é fácil, suponho que em python também.
Título: Re: IDE para C++ e como criar GUI
Enviado por: senso em 12 de Abril de 2017, 13:43
Pensa antes em ter um sistema funcional e atractivo, e não rebentes com a usabilidade com esquemas de protecção estúpidos, mas fácil perder clientes porque o software mission critical rebentou por não conseguir ligar ao servidor mãe e bloqueou assim as licenças todas do que teres um sistema que é turn key, prático e funcional..
Podes compilar python, assim como eu a seguir pego no IDA e o desmonto...

Já crackei alguns programas muito específicos(e raros, e do tempo da avózinha que o criador já não existe e comprar uma licença é impossível) de simulação, e no fim do dia a validação de licenças acaba por ser um true ou false(há coisas bem mais complicadas que isso, mas o mais comum é que no fim ou fazes um jump para o programa, ou para uma mensagem de erro, ás vezes basta um nop..)
Título: Re: IDE para C++ e como criar GUI
Enviado por: msr em 13 de Abril de 2017, 03:08
Sou suspeito mas, se já tens código C/C++ e queres uma GUI então mete-lhe Qt pra cima e não penses mais nisso ;)
Título: Re: IDE para C++ e como criar GUI
Enviado por: edeweld em 13 de Abril de 2017, 03:36
Bem aprendi bastante coisa a ler este tópico  ;D

Isto, http://www.kmccontrols.com/component/kmcproducts/?view=product&alias=HW-KEY, andava à procura de uma coisa destas mas não sabia o nome!
Isto, https://www.tcl.tk/, não sabia que existia!

O meu contributo
Sendo eu amante do pinguim, Gnu/Linux, gosto bastante de ShellScript! Tenho bastantes scripts nos meu private servers!
Para programar, o que aprendi recentemente na escola, é que C é bom para PIC e Assembly ainda melhor! Mas segundo o que li existem outras vias. Não sei, ainda estou a aprender e a opinião que tenho ainda é muito embrionária!

Programação Web, conforme já disseram é a melhor opção se queremos que a app tenha futuro e também se precisamos de portabilidade.
Também como já foi dito, criar um servidor web não tem nada de complicado e caro. Por isso é só criar o ambiente, e decidir o que vai ser feito pelo servidor e o que fica para fazer do lado do cliente. Aí entra o tipo de linguagem a utilizar.
Para este tipo de ambiente obriga a ter que saber bem mais do que uma linguagem de programação e estar preparado para saber montar redes, arranjar hardware e lidar com falhas de segurança e coisas do gênero!