Posts Mentioning RSS Toggle Comment Threads | Atalhos de teclado

  • jedizone 12:29 pm em April 21, 2009 Link Permanente | Responder
    Tags:   

    Como tomar três rasteiras pra fazer um sinal/slot no Qt Designer 

    Bom, eu não sabia nada de Qt. E não tinha lido nenhum livro. Mas ao ler tutorial Signal and Slots da documentação, me senti confiante pra usá-lo no meu primeiro projeto. Só quero contar alguns cuidados adicionais caso pretenda fazer o mesmo mas usando tipos personalizados para os seus sinais e  esteja no meu nível de (des)conhecimento do Qt.

    1. A primeira rasteira está quase toda escrita no documento citado. Você precisa avisar que sua classe é especial, isto é, tem lógica de sinais e slots. Isto é feito através da macro Q_OBJECT, que deve ser colocada dentro da sua classe e através da herança de QObject. O que não está muito claro pra quem não tem experiência com Qt ou QtDesign é que você precisa garantir que seu .h está listado dentro do arquivo de projeto (com .pro no final)  na diretiva HEADERS e que é necessária uma chamada explícita de “run qmake” no menu para processar as palavras chaves adicionais do Qt (eu imaginei que o QtDesigner fazia isto pra mim, “Santa ingenuidade, Batman !”). Eu fiquei na dúvida se é necessário um “rebuild all” depois, fiquei com a impressão que sim, mas não sei afirmar ainda  com certeza. Comentários para os leigos como eu são bem vindos.
    2. A segunda rasteira foi em achar que eu poderia usar um método com o formato “on_nome_do_metodo” para os meus slots, como os elementos da interface gráfica fazem. Segundo o pessoal do fórum QtCentre, não pode. Bom, com on_ não compilava.
    3. A terceira rasteira eu tomei ao usar tipos personalizados nos sinais. Ok, isto nem é recomendado pois diminui o reuso do sinal. Mas eu precisava que fosse assim. Desta vez, a mensagem foi mais clara para um iniciante, algo como “Make sure  <sua classe> is registered using qRegisterMetaType“. O mecanismo de sinais/slot é sofisticado e tem checagem dinâmica de tipos e fila, mas os tipos precisam ter sido registrados antes. No meu caso, era uma estrutura e era necessário a chamada de Q_DECLARE_METATYPE(nome_da_estrutura) dentro do .h e depois, antes de qualquer uso do sinal, qRegisterMetaType<nome_da_estrutura>(“nome desejado para o tipo”) dentro de algum .cpp.

    Finalmente o connect funcionou e o sinal foi corretamente emitido. Não se esqueça que um signal é apenas declarado no .h, não crie o método no .cpp. Isto está na documentação e, obviamente, eu só fui ver na segunda leitura. Logo, não foi uma rasteira, foi mais uma “bobeira”, das várias cometidas.

    E não esqueça também dos .h relacionados, como #include <QMetaType> para as macros de tipo personalizado e #include <QObject> para os sinais e slots (não, isto eu não esqueci!).

    No mais, continuo adorando o Qt/QtDesigner. Tenho gostado muito como os projetistas criaram os objetos, seus métodos e formas de uso. Até esqueci que várias palavras chaves foram adicionadas ao C++, como signal, slot, foreach, emit .. A documentação é boa e ajuda bem (olhe apenas a da versão que estiver usando, tomei outras rasteiras por achar que era tudo igual).

    Além disso, como meus objetivos com Qt saem do PC e vão para o S60 e, em breve, para o PyQt for S60, não tem nada melhor pra aprender agora !

     
    • acassis 7:10 pm em Maio 22, 2009 Link Permanente

      Que complicacao eim?

      Nada como GTK ou FLTK! :-D

      Um abraco,

      Alan

    • jedizone 7:59 pm em Maio 22, 2009 Link Permanente

      Cara, no fundo é bem legal ! Avaliação bem positiva !

  • jedizone 10:42 am em April 8, 2009 Link Permanente | Responder  

    Transmissores sem fio de baixo custo 

    Parece piada, mas não é. E obviamente não é para área classificada, com estas baterias aparentes. Vejam detalhes aqui.

    cell-phone-gag

     
    • mauromartins 12:53 pm em Abril 8, 2009 Link Permanente

      Uau, bem interessante a idéia !

  • jedizone 11:14 am em April 6, 2009 Link Permanente | Responder  

    N97 não parece ser um iPhone Killer, talvez um “XMEN” Killer 

    Antes do post, uma explicação. XMEN é a junção das séries XM (Xpress Music), E e N da Nokia. Termo que acabei de inventar nesta manhã horrível de segunda.

    O N97 foi aprovado pelo FFC (Federal Communications Commission), prática necessária para produtos com este perfil de comunicação. No caso, foi o modelo europeu. Em geral, as pessoas ficam vigiando estas aprovações para ter informações prévias sobre o equipamento. O Engadget fez um post mostrando fotos e até o manual, tudo decorrente do processo de certificação. Obviamente eles não leram o manual, já que não existe nenhum comentário sobre ele. E, obviamente, eu li, um defeito antigo meu de ficar perdendo tempo com estas “coisas inúteis”. Pontos que achei interessante no manual:

    • Sensor de proximidade para desligamento do touch screen quando o aparelho fica perto do ouvido. Parece ótimo para usar pra outros fins, não ?
    • Over the air (OTA) updates. Será que não vou ter que abrir o NSU mesmo (Nokia Software Update) ? OTA é coisa antiga já, por sinal.
    • Transmissor de FM presente. Mas será que deixarão habilitar no Brasil, algo que não aconteceu com o N78 ?
    • Led de carga da bateria. Ok, detalhe, mas legal.
    • GPS com “compasso”. Nome bonito pra dizer que o mapa irá girar à medida que o aparelho gira, sempre mantendo a orientação. Tem um processo de calibração baseado em uns giros com o aparelho no pulso.
    • USB Charging. Demorou …

    O manual não é muito revelador, no fundo. As especificações de hardware estão alerdeadas por toda a parte, sendo realmente um XMEN Killer e superando o iPhone em praticamente todos os quesitos. Mas fica a dúvida se a interface vai convencer também e abocanhar os fanboys da Apple. Sinceramente, ainda não concluí isso pelos vídeos que vi e o caminho do iPhone parece aberto e promissor…

     
    • Sérgio Berlotto 10:53 am em Abril 7, 2009 Link Permanente

      Gostei muito deste aparelho.. pareceu bem interessante !
      O formato dele é bem proveitoso tb, só basta saber o precinho agora ! hehehe

    • jedizone 10:57 am em Abril 7, 2009 Link Permanente

      Como diriam os vendedores de carro: “é completo, até com air-bag e ABS!

  • jedizone 9:43 pm em April 5, 2009 Link Permanente | Responder  

    Sistema operacional MQX gratuito para plataforma Coldfire da Freescale 

    Achei interessante e merece uma olhada. Código fonte disponível, sem royalties ou custo. Neste momento para processadores Coldfire MCF5225x, com suporte a caracteristicas como stack TCP/IP, USB, suport a FAT e real time.

    Detalhes em:

    http://www.freescale.com/webapp/sps/site/homepage.jsp?code=MQX_HOME

    A Freescale vai apresentar um webnar dia 16/04 às 14:00. Cadastro pelo endereço:

    https://www2.gotomeeting.com/register/941233391

    PS: Pelo o que eu entendi, o código original foi licenciado da Embedded Access Inc. Lendo a licença, basicamente a restrição é usar chips Freescale permitidos (por hora somente o 5225, mas deve aumentar).

     
    • acassis 12:46 pm em Abril 7, 2009 Link Permanente

      “É uma armadilha Bino!”

      O software parece bom, mas as restrições são terríveis.

      Você não pode fornecer para seu cliente o código fonte e nem um patch com as modificações que você fez. Se seu cliente encontrar um BUG ele não poderá consertar e nem poderá fazer engenharia reversa para tentar resolver o problema.

      Pela menos a licença não tem aquela pérola: “esta licença poderá ser modificada no futuro sem você ser notificado”.

      Sinceramente, dá uma olhada no FreeRTOS, ele tem suporte a quase tudo que o MQX e ainda é livre de verdade.

      Um abraço,

      Alan

    • jedizone 3:27 pm em Abril 7, 2009 Link Permanente

      Sim, eu vi a restrição, além de ler manual eu leio licença também ;-)

      Do ponto de vista de quem faz o produto a licença é pouco restritiva. Mas um cliente com perfil open source deve procurar o freertos, ecos, ….

      Imagina se a gente passa a vender um transmissor com CD de código fonte ? Não acho que nossos clientes estão preocupados com isso. Preferem exigir uma certificação SIL que chegue no nível do firmware.

      Para um revendedor de BSPs e placas de desenvolvimento será muito ruim. Mas para um produto fechado, é aceitável.

c
escrever novo post
j
próxima postagem/ próximo comentário
k
postagem anterior/comentário anterior
r
responder
e
editar
o
mostrar/esconder comentários
t
voltar ao topo
l
vá para login
h
show/hide help
esc
cancelar