TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!
Moderador: Moderadores
-
fabianocsilva
- Usuário Nível 1

- Mensagens: 6
- Registrado em: 11 Nov 2010 21:50
- Localização: Santa Maria - RS
Re: TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!
Ola Stanis!
Muito bom o exemplo, compilei e rodei está 100%, agora vou estudar ele para começar a aplicar as minhas necessidade.
Abraços.
Muito bom o exemplo, compilei e rodei está 100%, agora vou estudar ele para começar a aplicar as minhas necessidade.
Abraços.
-
Stanis Luksys
- 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!
Opa,
Apesar de o uso da classe TFormUi ter ficado totalmente funcional, não estou recomendando seu uso, vale mais como exemplo. Refiz este mesmo programa agregando agora a conversão de UI-PRG e a geração de arquivos de recursos e ficou bem melhor.
Vou disponibilizar para download lá também, acho que você vai preferir.
Uma última observação quanto a este programa em específico é que se você tiver usando o compiz-fusion como gerenciador de janelas, precisa fazer umas alterações em suas configurações pro plugin do flash player funcionar...
Abraços!
Ficou bem legal né... Mas deixa eu te falar, eu estava revendo aqui e quando eu fiz este tutorial eu tinha usado a QT 6.1 com o Harbour 2.1. Agora estive testando com as versões 7.1 da qt e Harbour corujão e de fato ficou bem melhor convertendo os forms .UI em prg como o clord falou há algum tempo.fabianocsilva escreveu:Muito bom o exemplo, compilei e rodei está 100%, agora vou estudar ele para começar a aplicar as minhas necessidade.
Apesar de o uso da classe TFormUi ter ficado totalmente funcional, não estou recomendando seu uso, vale mais como exemplo. Refiz este mesmo programa agregando agora a conversão de UI-PRG e a geração de arquivos de recursos e ficou bem melhor.
Vou disponibilizar para download lá também, acho que você vai preferir.
Uma última observação quanto a este programa em específico é que se você tiver usando o compiz-fusion como gerenciador de janelas, precisa fazer umas alterações em suas configurações pro plugin do flash player funcionar...
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.
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.
-
Stanis Luksys
- 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!
Opa,
Atualizei lá no site o exemplo e agora não usa mais a TFormUi, sendo que os forms desenhados na Qt-Designer são automaticamente convertidos para prg. Adicionei também o arquivo de recursos.
Ficou bem legal, não precisa mais enviar o form nem as imagens pro usuário.
http://sites.google.com/site/hblibs/exe ... e-com-hbqt
Abraços!
Atualizei lá no site o exemplo e agora não usa mais a TFormUi, sendo que os forms desenhados na Qt-Designer são automaticamente convertidos para prg. Adicionei também o arquivo de recursos.
Ficou bem legal, não precisa mais enviar o form nem as imagens pro usuário.
http://sites.google.com/site/hblibs/exe ... e-com-hbqt
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.
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.
-
fabianocsilva
- Usuário Nível 1

- Mensagens: 6
- Registrado em: 11 Nov 2010 21:50
- Localização: Santa Maria - RS
Re: TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!
Ola Stanis!
Não estou conseguindo compilar a ultima versão do teu exemplo
aparece os seguintes erros em negrito:
hbmk2: plugin: Error: Intermediate file (/tmp/hXc0MY) is not an .uic file.
hbmk2: Harbour: Compilando módulos...
Harbour 2.1.0beta2 (Rev. 15824)
Copyright (c) 1999-2010, http://harbour-project.org/
Compiling 'youtube.prg'...
Lines 877, Functions/Procedures 10
Generating C source output to '.hbmk/linux/gcc/youtube.c'... Done.
Compiling 'util.prg'...
Lines 924, Functions/Procedures 2
Generating C source output to '.hbmk/linux/gcc/util.c'... Done.
Compiling '.hbmk/linux/gcc/rcc_res.prg'...
Lines 930, Functions/Procedures 1
Generating C source output to '.hbmk/linux/gcc/rcc_res.c'... Done.
Cannot open .hbmk/linux/gcc/uic_Main.prg, assumed external
No code generated.
hbmk2: Erro: Executando o compilador Harbour (interno): 1
('/usr/local/bin/harbour)' -n2 youtube.prg util.prg .hbmk/linux/gcc/rcc_res.prg .hbmk/linux/gcc/uic_Main.prg -w3 -es2 -o.hbmk/linux/gcc/ -i/usr/local/include/harbour -i/ico/fabiano/ft/harbour-project/trunk/harbour/contrib/hbqt/qtcore -i/ico/fabiano/ft/harbour-project/trunk/harbour/contrib/hbqt -i/ico/fabiano/ft/harbour-project/trunk/harbour/contrib/hbqt/qtgui -i/ico/fabiano/ft/harbour-project/trunk/harbour/contrib/hbqt/qtnetwork -i/ico/fabiano/ft/harbour-project/trunk/harbour/contrib/hbqt/qtuitools -i/ico/fabiano/ft/harbour-project/trunk/harbour/contrib/hbtip
Se souber da solução me avise.
Abraços
Não estou conseguindo compilar a ultima versão do teu exemplo
aparece os seguintes erros em negrito:
hbmk2: plugin: Error: Intermediate file (/tmp/hXc0MY) is not an .uic file.
hbmk2: Harbour: Compilando módulos...
Harbour 2.1.0beta2 (Rev. 15824)
Copyright (c) 1999-2010, http://harbour-project.org/
Compiling 'youtube.prg'...
Lines 877, Functions/Procedures 10
Generating C source output to '.hbmk/linux/gcc/youtube.c'... Done.
Compiling 'util.prg'...
Lines 924, Functions/Procedures 2
Generating C source output to '.hbmk/linux/gcc/util.c'... Done.
Compiling '.hbmk/linux/gcc/rcc_res.prg'...
Lines 930, Functions/Procedures 1
Generating C source output to '.hbmk/linux/gcc/rcc_res.c'... Done.
Cannot open .hbmk/linux/gcc/uic_Main.prg, assumed external
No code generated.
hbmk2: Erro: Executando o compilador Harbour (interno): 1
('/usr/local/bin/harbour)' -n2 youtube.prg util.prg .hbmk/linux/gcc/rcc_res.prg .hbmk/linux/gcc/uic_Main.prg -w3 -es2 -o.hbmk/linux/gcc/ -i/usr/local/include/harbour -i/ico/fabiano/ft/harbour-project/trunk/harbour/contrib/hbqt/qtcore -i/ico/fabiano/ft/harbour-project/trunk/harbour/contrib/hbqt -i/ico/fabiano/ft/harbour-project/trunk/harbour/contrib/hbqt/qtgui -i/ico/fabiano/ft/harbour-project/trunk/harbour/contrib/hbqt/qtnetwork -i/ico/fabiano/ft/harbour-project/trunk/harbour/contrib/hbqt/qtuitools -i/ico/fabiano/ft/harbour-project/trunk/harbour/contrib/hbtip
Se souber da solução me avise.
Abraços
-
Stanis Luksys
- 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!
Opa,
Primeiro, faça novamente o download, pois alterei algumas coisas.
Em seguida, verifique se dentro no arquivo youtube.hbp estão os caminhos corretos para os respectivos HBC de cada lib. Além disso altere o hbqt.hbc para incluir a qtwebkit, aliás descomente tudo que tiver comentado lá, provavelmente está comentado o uitools, e aí da pau na conversão. Veja se você tem hbqtuitools compilada!
Para compilar, utilize o comando:
Teoricamente, assim deveria funfar. Se o erro persistir, recompile a versão do SVN ou a versão corujão do Harbour, que no Linux é bem mais tranquilo que no WIndows.
Procure baixar o harbour para /usr/src e instalar em /usr.
Desta forma ele seguirá o padrão:
/usr/bin -> binários
/usr/src/harbour -> código
/usr/lib/harbour -> libs
/usr/include/harbour -> cabeçalhos
etc
Após compilação e intalação, retire qualquer variável de ambiente referente ao Harbour, ele não precisará de nada disso e pode até mesmo atrapalhar.
Abraços.
Primeiro, faça novamente o download, pois alterei algumas coisas.
Em seguida, verifique se dentro no arquivo youtube.hbp estão os caminhos corretos para os respectivos HBC de cada lib. Além disso altere o hbqt.hbc para incluir a qtwebkit, aliás descomente tudo que tiver comentado lá, provavelmente está comentado o uitools, e aí da pau na conversão. Veja se você tem hbqtuitools compilada!
Para compilar, utilize o comando:
Código: Selecionar todos
hbmk2 youtube.hbpProcure baixar o harbour para /usr/src e instalar em /usr.
Desta forma ele seguirá o padrão:
/usr/bin -> binários
/usr/src/harbour -> código
/usr/lib/harbour -> libs
/usr/include/harbour -> cabeçalhos
etc
Após compilação e intalação, retire qualquer variável de ambiente referente ao Harbour, ele não precisará de nada disso e pode até mesmo atrapalhar.
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.
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.
-
fabianocsilva
- Usuário Nível 1

- Mensagens: 6
- Registrado em: 11 Nov 2010 21:50
- Localização: Santa Maria - RS
Re: TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!
Ola Stanis!
Recompilei o Harbour do trunk e funcionou, valeu a dica.
Abraços.
Recompilei o Harbour do trunk e funcionou, valeu a dica.
Abraços.
-
chrissoares
- Usuário Nível 1

- Mensagens: 45
- Registrado em: 23 Dez 2009 14:35
- Localização: Belo Horizonte/MG
- Contato:
TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!
Pessoal,
Estou apanhando muito para conseguir fazer o meu programa utilizar um arquivo .ui. Vi, pelo exemplo do Stanis, que é criado um .prg a partir do arquivo .ui, mas eu tentei seguir o exemplo e não consegui.
Abaixo estão: meu PRG, script de compilação HBP e o retorno da compilação.
Teste.prg
Teste.hbp
Compilação:
Alguém pode dar alguma ajuda ?
Obrigado e abraços a todos!
Estou apanhando muito para conseguir fazer o meu programa utilizar um arquivo .ui. Vi, pelo exemplo do Stanis, que é criado um .prg a partir do arquivo .ui, mas eu tentei seguir o exemplo e não consegui.
Abaixo estão: meu PRG, script de compilação HBP e o retorno da compilação.
Teste.prg
Código: Selecionar todos
#include "hbclass.ch"
procedure Main()
local oApp
local oDialogo, oUi, oArq
local cArq := "teste.ui"
oApp := qApplication():new()
if File(cArq)
oArq := QFile():new(cArq)
if oArq:open(1)
oUi:= QUiLoader():new()
oDialogo := QDialog():configure(oUi:load(oArq))
oArq:Close()
endif
endif
oDialogo:show()
oApp:Exec()
oApp:Quit()
returnCódigo: Selecionar todos
-w3 -es0
-oTeste.exe
-gui
c:\hb21\contrib\hbqt\hbqt.hbc
teste.prg
teste.ui
Código: Selecionar todos
hbmk2 teste.hbp
Harbour 2.1.0rc2 (Rev. 16901)
Copyright (c) 1999-2011, http://harbour-project.org/
Compiling 'teste.prg'...
Lines 89, Functions/Procedures 1
Generating C source output to 'C:\DOCUME~1\CHRIST~1.WSO\CONFIG~1\Temp\hbmk_64hua
y.dir\teste.c'... Done.
Compiling 'C:\DOCUME~1\CHRIST~1.WSO\CONFIG~1\Temp\hbmk_64huay.dir\uic_teste.prg'
...
Lines 2392, Functions/Procedures 1
Generating C source output to 'C:\DOCUME~1\CHRIST~1.WSO\CONFIG~1\Temp\hbmk_64hua
y.dir\uic_teste.c'... Done.
C:/DOCUME~1/CHRIST~1.WSO/CONFIG~1/Temp/hbmk_64huay.dir/teste.o:teste.c:(.data+0x
88): undefined reference to `HB_FUN_QUILOADER'
collect2: ld returned 1 exit status
hbmk2: Erro: Executando linkeditor. 1
gcc.exe C:/DOCUME~1/CHRIST~1.WSO/CONFIG~1/Temp/hbmk_64huay.dir/teste.o C:/DOCUME
~1/CHRIST~1.WSO/CONFIG~1/Temp/hbmk_64huay.dir/uic_teste.o C:/DOCUME~1/CHRIST~1.W
SO/CONFIG~1/Temp/hbmk_64huay.dir/hbmk_m9dlso.o C:/DOCUME~1/CHRIST~1.WSO/CONFIG~1
/Temp/hbmk_64huay.dir/hbmk_fwf2bj.o -mwindows -Wl,--start-group -lsupc++ -lhb
qtcore -lQtCore4 -lhbqtgui -lQtGui4 -lhbqtnetwork -lQtNetwork4 -lhbqtsql -lQtSql
4 -lgtqtc -lhbextern -lhbdebug -lhbvm -lhbrtl -lhblang -lhbcpage -lgtcgi -lgtpca
-lgtstd -lgtwin -lgtwvt -lgtgui -lhbrdd -lhbuddall -lhbusrrdd -lrddntx -lrddcdx
-lrddnsx -lrddfpt -lhbrdd -lhbhsx -lhbsix -lhbmacro -lhbcplr -lhbpp -lhbcommon
-lhbmainwin -lkernel32 -luser32 -lgdi32 -ladvapi32 -lws2_32 -lwinspool -lcomctl3
2 -lcomdlg32 -lshell32 -luuid -lole32 -loleaut32 -lmpr -lwinmm -lmapi32 -limm32
-lmsimg32 -lwininet -lhbpcre -lhbzlib -Wl,--end-group -oTeste.exe -Lc:/hb21/l
ib/win/mingw -Lc:/hb21/binObrigado e abraços a todos!
Christiano R. Soares
Analista Desenvolvedor
www.bhdados.com.br
'Tudo o que fizerem, façam de todo o coração, como para o Senhor, e não para os homens, sabendo que receberão do Senhor a recompensa da herança. É a Cristo, o Senhor, que vocês estão servindo. '
Colossenses 3:23-24
Analista Desenvolvedor
www.bhdados.com.br
'Tudo o que fizerem, façam de todo o coração, como para o Senhor, e não para os homens, sabendo que receberão do Senhor a recompensa da herança. É a Cristo, o Senhor, que vocês estão servindo. '
Colossenses 3:23-24
-
Stanis Luksys
- 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!
Olá chrissoares,
Eu precisaria dar uma olhada no último código quer tá la no meu site, há algum tempo que não mexo então não me lembro, porém o erro mostra que não esta linkando a lib que tem a função quiloader.
Eu diria que provavelmente falta você compilar os fontes das bibliotecas da Qt que só vem na contrib e não vem na versão que baixa do site sem os fontes.
Se você ler a minha ultima mensagem antes dessa, poderá ver uma recomendação que talvez te sirva:
Eu precisaria dar uma olhada no último código quer tá la no meu site, há algum tempo que não mexo então não me lembro, porém o erro mostra que não esta linkando a lib que tem a função quiloader.
Eu diria que provavelmente falta você compilar os fontes das bibliotecas da Qt que só vem na contrib e não vem na versão que baixa do site sem os fontes.
Se você ler a minha ultima mensagem antes dessa, poderá ver uma recomendação que talvez te sirva:
...Além disso altere o hbqt.hbc para incluir a qtwebkit, aliás descomente tudo que tiver comentado lá, provavelmente está comentado o uitools, e aí da pau na conversão. Veja se você tem hbqtuitools compilada!
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.
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.
-
chrissoares
- Usuário Nível 1

- Mensagens: 45
- Registrado em: 23 Dez 2009 14:35
- Localização: Belo Horizonte/MG
- Contato:
TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!
Obrigado Stanis,
Eu consegui descobrir como faz para que o Hbmk2 converta o arquivo .ui para .prg, bastando colocar este arquivo no script .hbp.
Agora a luta é com o campo QDateEdit, o qual eu não consigo colocar uma data via código de maneira alguma. Já tentei .setDate(ano, mes, dia) mas nem assim funcionou.
Obrigado pela atenção!
Vamos em frente descobrindo as manhas dessa QT!
Abraços a todos!
Eu consegui descobrir como faz para que o Hbmk2 converta o arquivo .ui para .prg, bastando colocar este arquivo no script .hbp.
Agora a luta é com o campo QDateEdit, o qual eu não consigo colocar uma data via código de maneira alguma. Já tentei .setDate(ano, mes, dia) mas nem assim funcionou.
Obrigado pela atenção!
Vamos em frente descobrindo as manhas dessa QT!
Abraços a todos!
Christiano R. Soares
Analista Desenvolvedor
www.bhdados.com.br
'Tudo o que fizerem, façam de todo o coração, como para o Senhor, e não para os homens, sabendo que receberão do Senhor a recompensa da herança. É a Cristo, o Senhor, que vocês estão servindo. '
Colossenses 3:23-24
Analista Desenvolvedor
www.bhdados.com.br
'Tudo o que fizerem, façam de todo o coração, como para o Senhor, e não para os homens, sabendo que receberão do Senhor a recompensa da herança. É a Cristo, o Senhor, que vocês estão servindo. '
Colossenses 3:23-24
- Dr.Microso
- Usuário Nível 3

- Mensagens: 173
- Registrado em: 12 Jan 2009 21:26
- Localização: Belo Horizonte, MG
TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!
Ao Cristhiano e a quem aqui chegar pelo mesmo motivo...
Note que no exemplo apenas uso o próprio Widget QDateEdit...
Mas, se a intenção fosse inserir uma data específica, como exemplo: 13/08/1970
Um abraço!
É necessário empregar a classe QDate antes.chrissoares, escreveu:"...Agora a luta é com o campo QDateEdit, o qual eu não consigo colocar uma data via código de maneira alguma. Já tentei .setDate(ano, mes, dia) mas nem assim funcionou."
Note que no exemplo apenas uso o próprio Widget QDateEdit...
Código: Selecionar todos
#include "hbqtgui.ch"
*-----------------
procedure main
*-----------------
local oApp, oD1, oD2, data:=Date( ) //data atual
oApp:=QApplication( )
oD1:=QDate(year(data), month(data), day(data))
oD2:=QDateEdit( )
oD2:setDate( oD1 )
oD2:show( )
oApp:exec( )
return
Código: Selecionar todos
#include "hbqtgui.ch"
*-----------------
procedure main
*-----------------
local oApp, oD1, oD2
oApp:=QApplication( )
oD1:=QDate( 1970, 13, 08 )
oD2:=QDateEdit( )
oD2:setDate( oD1 )
oD2:show( )
oApp:exec( )
return
"O que domina aos outros é forte; o que domina a si mesmo é poderoso." [ Lao-Tsé - séc VII AC]
"É tipo uma Alquimia... Porções de código viram soluções que mutam-se fisicamente em sorrisos e outros, como o notebook que uso para escrever estas linhas..." dr.microso@hotmail.com
"É tipo uma Alquimia... Porções de código viram soluções que mutam-se fisicamente em sorrisos e outros, como o notebook que uso para escrever estas linhas..." dr.microso@hotmail.com
-
chrissoares
- Usuário Nível 1

- Mensagens: 45
- Registrado em: 23 Dez 2009 14:35
- Localização: Belo Horizonte/MG
- Contato:
TUTORIAL: Harbour com QT-Designer. Uma combinação perfeita!
Obrigado pela ajuda, acredito que outros além de mim vão se beneficiar dela.Dr.Microso escreveu:Ao Cristhiano e a quem aqui chegar pelo mesmo motivo...
Realmente são formas de fazer que não estamos acostumados, mas nada como ir dando os passos para se entender como ficar de pé.
Eu parei de estudar a QT infelizmente, pois a migração da aplicação iria levar muito tempo devido ao aprendizado com a QT. Mas vou brincando com ela na medida do possível. Acredito que seja uma ótima opção para se migrar os aplicativos de interface texto para gráfica, os recursos são ótimos, então quem tiver disponibilidade deve continuar desvendando os caminhos da QT.
Abraços e que Deus continue nos abençoando!
Christiano R. Soares
Analista Desenvolvedor
www.bhdados.com.br
'Tudo o que fizerem, façam de todo o coração, como para o Senhor, e não para os homens, sabendo que receberão do Senhor a recompensa da herança. É a Cristo, o Senhor, que vocês estão servindo. '
Colossenses 3:23-24
Analista Desenvolvedor
www.bhdados.com.br
'Tudo o que fizerem, façam de todo o coração, como para o Senhor, e não para os homens, sabendo que receberão do Senhor a recompensa da herança. É a Cristo, o Senhor, que vocês estão servindo. '
Colossenses 3:23-24