TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!

Mensagem por Stanis Luksys »

Olá Galera,

Voltei a mexer com Harbour e senti falta de um bom ambiente de desenvolvimento, motivo pelo qual me dediquei um pouco a entender como poderia integrar o Harbour, memso que usando o velho DBF, com uma interface de fato surpreendente.

Vou mostrar um pouco pra vocês como usar a IDE QT-Designer, de modo a desenhar formulários que podem ser chamados pelo seu programa.

Para iniciar primeiro deve-se é claro baixar a QT-Designer. Como estou no Linux, já fica disponível aqui para download e instalação no próprio sistema, mas quem estiver no Windows dá uma olhada no Google que deve achar fácil. Na verdade não testei no Windows, mas todo o kit da QT têm a promessa de ser multiplataforma, então muito provavelmente o procedimento é o mesmo.

Assumindo que esteja tudo em orderm, harbour compilado, contribs compilados etc e tal, podemos entrar na nossa IDE para desenhar uma telinha básica.


PARTE I - QT-DESIGNER


PASSO 1 - CRIANDO UM WIDGET

Ao entrar na QT-Designer essa tela será exibida. Caso não seja, basta ir em arquivo->novo e aparecerá. Nesta tela vamos apenas selecionar "Widget" e clicar em "Create", conforme a figura abaixo.

Imagem



Veja abaixo a estrutura completa da IDE. Os recursos saltam aos olhos, tem tudo que qualquer das IDEs mais completas, mais famosas e mais caras tem.

Imagem



PASSO 2 - ARRASTANDO ELEMENTOS

Na QT-Designer, os objetos devem ser arrastados para dentro do form, diferente de outras IDEs em que você clica no objeto e e depois clica no form. Então vamos criar um botão apenas o arrastando para o form. Veja a imagem:

Imagem


PASSO 3 - ENVIANDO SINAIS A OBJETOS

Nesta etapa, vamos criar um pequeno evento através de sinais, apenas para demonstração. Para isso deve-se clicar no menu "Edit Signals", demonstrado na figura abaixo. Após selecionar este comando, clique no botão que criamos, que ficará selecionado e você poderá arrastar para onde ele vai enviar um sinal. Para simplificar, neste exemplo eu "liguei" o botão ao próprio formulário.

Neste momento surgirá uma caixa de diálogo onde os sinais e slots disponíveis de cada objeto aparacem para que você possa selecionar o que deseja fazer. Evidente que você pode criar sua própria funçao em Harbour e disparar no clique no botão, mas como este é um tuto básico, vamos nos ater a ver como funcinoa o lance dos sinais entre objetos do mesmo form.

Bom... neste exemplo eu selecionei que ao botão ser clicado, o formulário será maximizado. É muito simples, basta selecionar cada evento na coluna do respectivo objeto. Desde o começo do tutorial ainda não encostei no teclado para escrever uma letra.

Acompanhe:

Imagem


PASSO 4 - TRABALHANDO COM LAYOUTS

Este sem dúvidas é o recurso mais poderoso desta desta IDE, em termos de desenho de telas. O gerenciamento de posicionamento de objetos é perfeito, as opções são inúmeras. Vou mostrar apenas algum detalhe.

Para que possamos trabalhar com um layout, precisamos colocar mais alguns objetos na tela. Eu coloquei um label e mais um botão.

Agora a parte que se segue é de extrema importância, pois é onde será realizado o agrupamento de objetos dentro do formulário.

Vamos começar agrupando os dois botões alinhados horizontamente. Para isso selecione os dois botões criados clicando com CTRL. e clique no ícone "Layout Horizontally", conforme a figurinha:

Imagem


Após esta etapa você já poderá ver no Inspetor, os objetos agrupados através de um layout. Para finalizar vamos criar mais um grupo, mas desta vez um grupo geral que pega todo o form.

Para isso basta clicar em um espaço vazio do formulário e selecionar o comando "Lay Out in a grid", e em seguida, opcionalmnte em "Adjust Size".

Apenas um comentário. Esse layout geral como "Grid" é o que te dá a possibilidade de ter objetos auto-redimensionáveis, um dos recursos mais agradáveis de um programa desktop, que não precisa te proibir de redimensionar as janelas para não desalinhar tudo ou não ficar espaços em branco.

Veja como estamos:

Imagem


PARA FINALIZAR SALVE O FORMULÁRIO. Eu chamei de teste-hbqt. A extensão padrão é *.ui. (foi a primeira vez que toquei no teclado)


PARTE II - CÓDIGO FONTE NO HARBOUR

Bom pessoal, aqui não vou explicar muito porque o código altamente legível e simples, de forma que qualquer clippeiro pode entender. Não há nada de outro mundo. De qualquer forma se alguém testar e tiver curiosidade ou dúvidas, pode postar aqui mesmo que eu na medida do possível eu vou tentando esclarecer. Sempre lembrando que eu também estou conhecendo a HBQT agora, embora a QT-Designer eu já conhecesse.

Aí vai o código. É só compilar e rodar:

Código: Selecionar todos

#include "hbqt.ch"

STATIC qApp
REQUEST HB_QT

INIT PROCEDURE Qt_Start()
   qApp := QApplication():new()
   RETURN
EXIT PROCEDURE Qt_End()
   qApp:quit()
   RETURN



PROCEDURE Main()

   LOCAL oMinhaJanela, oLayout

   oMinhaJanela := CarregaUI("teste-hbqt.ui")

   IF ( oMinhaJanela == Nil )
      MsgInfo( "Problema ao abrir form!!" )
      QUIT
   ENDIF

   oMinhaJanela:show()

   qApp:exec()

RETURN


FUNCTION CarregaUI( cArqUI )

   LOCAL oDialogo, oUi, oArq

   IF File( cArqUI )
      oArq := QFile():new( cArqUI )
      IF oArq:open( 1 )
         oUi      := QUiLoader():new()
         oDialogo := QDialog():configure( oUi:load( oArq ) )
         oArq:close()
      ELSE
         RETURN Nil
      ENDIF
   ELSE
      RETURN Nil
   ENDIF

RETURN oDialogo


STATIC FUNCTION MsgInfo( cMsg )
   LOCAL oBox
   oBox:= QMessageBox():new()
   oBox:setInformativeText( cMsg )
   oBox:setWindowTitle( "Informação!" )
   oBox:exec()
   oBox := NIL
   HB_GCALL( .T.)
  RETURN nil


PARTE III - CONCLUSÃO

É isso pessoal, na minha opinião não há nada no mundo xBase hoje que se compare a isso. Sem dúvidas é a melhor combinação entre Harbour, biblioteca gráfica e IDE.

Espero que seja de bom proveito para alguém, e aí vai o resultado final do programa, com a janela redimensinada para se ter uma idéia de como fica.

Abraços!!!


Imagem
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Re: TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!

Mensagem por lugab »

Impressionante, Stanis.

A ferramenta e a apresentação foram nota 10.

Qualquer "trainee tipo eu", que desejar voar mais alto, já tem por onde começar.

Obrigado, por compartilhar o conhecimento..

Gabriel
lugab
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Re: TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!

Mensagem por Stanis Luksys »

Opa,

Aqui foi apresentado apenas o Qt-Designer, que é o desehador de formulários da QT. Quem quiser uma verdadeira IDE, num conceito mais profundo de ambiente de desenvolvimento, pode usar a Qt-Creator, que possue este mesmíssimo desenhador de telas e mais uma pancada de recursos, editor de texto, geração de código etc. Claro que para usar com o Harbour não tem todos os recursos que para usar com C++, mas já da uma boa adiantada no trabalho.

Estou programando por ela agora e simplifica muito o trabalho.

Abraços.
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
clrod
Usuário Nível 2
Usuário Nível 2
Mensagens: 79
Registrado em: 17 Nov 2009 13:42
Localização: São Paulo - SP

Re: TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!

Mensagem por clrod »

Olá

Muito bom.

Eu estava justamente estudando o utilitário do Harbour que converte o arquivo .ui em prg o que torna a aplicação muito mais rápida por não ter que "interpretar" o ui em tempo de execução.

T+
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Re: TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!

Mensagem por Stanis Luksys »

Olá,

Eu nunca gostei de enviar arquivos de recursos como telas, bitmaps, DLLs, libs, para o cliente. Mas ao menos no Linux, este é um padrão, pois não se cria uma pasta para o programa, ele se espalha pelas pastas do SO, justamente para que outras programas possas usar o mesmo recursos ao invés de instalar de novo. Isso é o que cria as tais dependências.

Estive pensando, e não acho ruim enviar o form e deixar ele ser acessado em tempo real. Fiz algumas telas bem complexas, com muitos objetos, em resolução de 1920x1080 e não notei nenhum problema de desempenho.

Vou te dar um exemplo. Imagine aqueles sistemas comerciais que os caras sempre pedem que burla a emissão do cupom fiscal. Você pode acessar a mesma tela frente de caixa em rotinas e até com programas diferentes, desenvolvidos em qualquer linguagem. Depois o processo você muda no seu código. De certa forma uma analogia a API do Windows, que todos os programas podem acessar;

Acho que converter o UI em PRG retira completamenta o conceito do UI em sí, que é exatamente ser um XML multi acessível.

Abraços.
Editado pela última vez por Stanis Luksys em 06 Set 2010 12:16, em um total de 1 vez.
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!

Mensagem por sygecom »

Olá Stanis,
Muito boa essa sua contribuição de tutorial, boa mesmo, parabéns por compartilhar com nós essas informações.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
clrod
Usuário Nível 2
Usuário Nível 2
Mensagens: 79
Registrado em: 17 Nov 2009 13:42
Localização: São Paulo - SP

Re: TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!

Mensagem por clrod »

Olá

A recomendação oficial é fazer a conversão para prg, mas tem vantagens também em utilizar a ui e tem até caso meu que vou preferir esse método.

T+
carlos_dornelas
Usuário Nível 3
Usuário Nível 3
Mensagens: 400
Registrado em: 25 Ago 2004 21:54

Re: TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!

Mensagem por carlos_dornelas »

Muito bom esse tutorial! Parabéns Stanis por compartilhar. Consegui gerar o formulário rapidamente, mas não estou conseguindo compilar o código.

Peço ajuda de vocês para compilar o código. Eu fiz o seguinte:

1) baixei o harbour já compilado (versão noturna) de http://sourceforge.net/projects/harbour ... s/nightly/

2) instalei em D:\hb21

3) Nessa versão já vem junto o mingw que está instalado em D:\hb21\comp\mingw\

4) A QT já está instalada em D:\QT\4.6.0-rc1\

5) Criei o seguinte bat para o ambiente:
@echo off

set Path=%Path%;d:\hb21\bin;d:\hb21\lib\win\mingw;d:\hb21\comp\mingw\bin;d:\hb21\comp\mingw\lib;d:\Qt\4.6.0-rc1\bin;d:\Qt\4.6.0-rc1\lib;

set Include=%Include%;d:\hb21\include;d:\Qt\4.6.0-rc1\include;d:\hb21\comp\mingw\include;
6) rodei o bat para setar o ambiente;

7) Executei Hbmk2 hbq.prg (hbq.prg foi o nome que dei para o código apresentado pelo Stanis)

8) Acusou a falta do hbqt.ch (hbq.prg(1) Error F0029 Can't open #include file 'hbqt.ch')

9) Copiei o hbqt.ch da pasta do SVN para a pasta de testes e executei novamente Hbmk2 hbq.prg

10) Gerou esse monte de erro:
D:\testes>hbmk2 hbq.prg
Harbour 2.1.0beta2 (Rev. 15427)
Copyright (c) 1999-2010, http://harbour-project.org/
Compiling 'hbq.prg'...
Lines 2636, Functions/Procedures 5
Generating C source output to 'C:\Users\Desen\AppData\Local\Temp\hbmk_vm86at.dir
\hbq.c'... Done.
C:/Users/Desen/AppData/Local/Temp/hbmk_vm86at.dir/hbq.o:hbq.c:(.data+0x48): unde
fined reference to `HB_FUN_QAPPLICATION'
C:/Users/Desen/AppData/Local/Temp/hbmk_vm86at.dir/hbq.o:hbq.c:(.data+0xe8): unde
fined reference to `HB_FUN_QFILE'
C:/Users/Desen/AppData/Local/Temp/hbmk_vm86at.dir/hbq.o:hbq.c:(.data+0x108): und
efined reference to `HB_FUN_QUILOADER'
C:/Users/Desen/AppData/Local/Temp/hbmk_vm86at.dir/hbq.o:hbq.c:(.data+0x128): und
efined reference to `HB_FUN_QDIALOG'
C:/Users/Desen/AppData/Local/Temp/hbmk_vm86at.dir/hbq.o:hbq.c:(.data+0x158): und
efined reference to `HB_FUN_QMESSAGEBOX'
C:/Users/Desen/AppData/Local/Temp/hbmk_vm86at.dir/hbq.o:hbq.c:(.data+0x198): und
efined reference to `HB_FUN_HB_QT'
collect2: ld returned 1 exit status
hbmk2: Erro: Executando linkeditor. 1
gcc.exe C:/Users/Desen/AppData/Local/Temp/hbmk_vm86at.dir/hbq.o C:/Users/Desen/A
ppData/Local/Temp/hbmk_vm86at.dir/hbmk_ia3sqt.o -mconsole -Wl,--start-group -
lhbextern -lhbdebug -lhbvm -lhbrtl -lhblang -lhbcpage -lgtcgi -lgtpca -lgtstd -l
gtwin -lgtwvt -lgtgui -lhbrdd -lhbuddall -lhbusrrdd -lrddntx -lrddcdx -lrddnsx -
lrddfpt -lhbrdd -lhbhsx -lhbsix -lhbmacro -lhbcplr -lhbpp -lhbcommon -lhbmainstd
-lkernel32 -luser32 -lgdi32 -ladvapi32 -lws2_32 -lwinspool -lcomctl32 -lcomdlg3
2 -lshell32 -luuid -lole32 -loleaut32 -lmpr -lwinmm -lmapi32 -limm32 -lmsimg32 -
lwininet -lhbpcre -lhbzlib -Wl,--end-group -ohbq.exe -Ld:/hb21/lib/win/mingw -L
d:/hb21/bin
11) O que estou fazendo errado? Alguém pode me dar uma luz?

Antonio carlos
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Re: TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!

Mensagem por Stanis Luksys »

Legal Carlos, que bom que você se interessou!

Bom, para mim fica um pouco difícil de te ajudar, pois a princípio tudo indica que o que está acontecendo é algum problema na configuração do ambiente, e isso muda bastante entre o Windows e o Linux, e como eu compilei meu Harbour a partir dos fontes, e já tinha Qt pré-configurada, o Harbour já leu as variáveis que a Qt tinha setado antes, então não precisei setar os paths da Qt e tudo mais. Também usou-se por padrão o GCC, e não o MinGW, embora eu tenha ele aqui também. Aliás vou até dizer aqui que a turma do Harbour está de parabéns, porque a compilação aqui foi mágica, fez tudo sozinha.

Mas tem algo que muito provavelmente pode te ajudar. Notei aqui nos arquivos que existe uma variável HB_WITH_QT, que acho só precisa no Windows, e acho que você precisa defini-la.

O que deve resolver seu problema é colocar estes dois arquivos na mesma pasta do seu prg, e setar essa variável que mencionei.


Salve este como hbqt.hbc:

Código: Selecionar todos

incpaths=.

{allwin}libpaths=${HB_WITH_QT}\..\lib

libs=hbqt
libs=hbqtcore hbqtgui hbqtnetwork

{win}libs=version shlwapi
{allwin}libs=QtCore4 QtGui4 QtNetwork4 QtUiTools
{allwin}libs=psapi
{linux}libs=QtCore QtGui QtNetwork QtUiTools
{darwin}libs=/Library/Frameworks/QtCore.framework/QtCore
{darwin}libs=/Library/Frameworks/QtGui.framework/QtGui
{darwin}libs=/Library/Frameworks/QtNetwork.framework/QtNetwork
{darwin}libs=QtUiTools
{allgcc}libs=supc++

gui=yes
gt=gtnul

E este segundo como projeto.hbp: (alterando o que está em maiúsuclo na linha 3 e na linha 6)

Código: Selecionar todos

-inc
-w3 -es2
-oNOMEEXECUTAVEL
-ldflag={msvc}-nodefaultlib:msvcrt.lib
-ldflag={msvc}-defaultlib:libcmt.lib
NOMEPRG.prg
Para compilar, rode assim:

Código: Selecionar todos

hbmk2 projeto.hbp
Acho que deve funfar!

PS: Agora são quase 5hs da manhã e ainda nem dormi, mas acabo de bolar aqui um esquema muuuito melhor para ler form .UI, usando a lib "hbxbp". Amanhã vou postar aqui um código bem legal, já numa tela de PDV funfando. O clrod disse que tem uma ferramenta já pra converter os forms UI em PRG e que é mais indicado, mas ao menos pra testar assim, e em fase de desenvolvimento é legal deixar no UI mesmo, porque não precisa recompilar quando muda o form.

Abraços!
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!

Mensagem por Toledo »

Stanis Luksys escreveu:Notei aqui nos arquivos que existe uma variável HB_WITH_QT, que acho só precisa no Windows...
Use este BAT para defina está variável:

Código: Selecionar todos

SET PATH=%PATH%;d:\hb21\comp\mingw\BIN;d:\hb21\bin
SET INCLUDE=%INCLUDE%;d:\hb21\comp\mingw\include;d:\hb21\include
SET LIB=%LIB%;d:\hb21\comp\mingw\lib;d:\hb21\lib
SET HB_PATH=d:\hb21
SET HRB_DIR=d:\hb21
set HB_COMPILER=mingw
set HB_WITH_QT=D:\QT\4.6.0-rc1\include
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
clrod
Usuário Nível 2
Usuário Nível 2
Mensagens: 79
Registrado em: 17 Nov 2009 13:42
Localização: São Paulo - SP

Re: TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!

Mensagem por clrod »

Olá

Stanis: tem certeza que vai usar a HBXBP? Aquilo me parece uma bela duma gambiarra. Faça o que quiser, mas dê uma boa estudada nela antes.

Toledo: de uma maneira geral só a primeira e última linha do seu bat realmente são necessárias. Se as outras linhas forem necessárias é porque tem alguma coisa errada no ambiente. Parece que se os componentes necessários forem instalados extamente no diretório padrão, seja no Linux ou Windows, nem precisa informar o path.

O pessoal do Harbour não recomenda o uso do mingw que vem junto com a Qt.

T+
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Re: TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!

Mensagem por Stanis Luksys »

Olá,

Eu to testando apenas, e o material é escasso, to lendo os exemplo que vem no contrib. A própria HBIDE é todinha baseada nessa HBXBP pelo que ví, e foi no código dela que me "inspirei". Gostei também porque você pode cirar um loop de eventos, ao invés de usar QApplication():new() como eu fiz neste exemplo do tópico,

Outra coisa me pareceu mais simples pela HBXBP, foi controlar os objetos criados no UI. Não encontrei como alterar os sinais e os eventos do objetos diretamente pela HBQT. No meu exemplo deste tópico, apesar da leitura e exibição do form, não seria possível aterar sequer o texto botão, pois a funçãozinha CarregaUI que eu fiz baseado no que ví da HBQT, não retorna os objetos, ao passo que usando a classe XbpQtUiLoader da HBXBP posso trabalhar com um hash que contém o nome de todos os objetos. Enfim, a HBXBP tem umas classes já prontas em Harbour que facilitam.

De qualquer forma as duas libs andam de mãos dadas.

Mas... No momento estou apenas estudando, é cedo para conclusões precipitadas. No código em sí não ví gambiarra nenhuma nessa HBXBP.
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
clrod
Usuário Nível 2
Usuário Nível 2
Mensagens: 79
Registrado em: 17 Nov 2009 13:42
Localização: São Paulo - SP

Re: TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!

Mensagem por clrod »

Olá

A XBP em si é uma gambiarra, se for para usar um layer para facilitar o uso HBQt, eu não usaria a XBP, mas eu prefiro usar a HBQt direto mesmo sendo um pouco mais difícil. Eu acompanhei todo desenvolvimento da XBP e é caótico, cheio de remendos sem sentido, parece o xHarbour.

T+
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Re: TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!

Mensagem por Stanis Luksys »

Olá,

Seguindo sua indicação então, vou tentar usar somente a HBQT, que parece que vai mais "direito ao ponto", no que se refere a manipular os recursos da própria QT. No entanto, você saberia me dizer se consigo ler os objetos do form UI para alterá-los em tempo de execução?

Uma maneira com certeza deve existir, mas não encontrei em forma de exemplo, então estou trabalhando em algo que permita fazer isso. Se você souber de algo neste sentido, me da um toque, que já pouparia um bom trabalho. Minha intenção nete momento é somente desvendar e explorar os mistérios da dupla qt+harbour, de perferência até seu esgotamento.

Os resultados, claro, vou postando aqui.

Abraços!
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
clrod
Usuário Nível 2
Usuário Nível 2
Mensagens: 79
Registrado em: 17 Nov 2009 13:42
Localização: São Paulo - SP

Re: TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!

Mensagem por clrod »

Olá

A HBQt está precisando de exemplos mesmo. Parece até que tinha alguma coisa nesse sentido mas com a modernização, isso não foi usado mais. Eu não posso falar muito porque ainda não estou utilizando essa forma, mas espero usar até o final do ano.

T+
Responder