Clipper On Line • Ver Tópico - Novas classes p/ dispositivos móveis/Desktop
Mudar para estilo Clássico
Projeto Harbour QT - HbQt, HbXBP e HbIDE
Postar uma resposta

Novas classes p/ dispositivos móveis/Desktop

19 Out 2014 22:17

Estou aguardando QT 5.4 final, já estão testando a beta...

Código:
2014-10-19 16:00 UTC-0800 Pritpal Bedi (bedipritpal at hotmail.com)(r370)
  + hbqtwidgets/resources/app_side_contract.png
  + hbqtwidgets/resources/app_side_expand.png
  + hbqtwidgets/resources/application_side_contract.png
  + hbqtwidgets/resources/application_side_expand.png
  + hbqtwidgets/resources/down-1.png
  + hbqtwidgets/resources/menu.png
  + hbqtwidgets/resources/prv_barcode.png
  + hbqtwidgets/resources/prv_charts.png
  + hbqtwidgets/resources/prv_fit-best.png
  + hbqtwidgets/resources/prv_fit-width.png
  + hbqtwidgets/resources/prv_gradient.png
  + hbqtwidgets/resources/prv_grid.png
  + hbqtwidgets/resources/prv_image.png
  + hbqtwidgets/resources/prv_landscape.png
  + hbqtwidgets/resources/prv_left-4.png
  + hbqtwidgets/resources/prv_leftall-4.png
  + hbqtwidgets/resources/prv_objects.png
  + hbqtwidgets/resources/prv_page-setup.png
  + hbqtwidgets/resources/prv_page_double.png
  + hbqtwidgets/resources/prv_page_four.png
  + hbqtwidgets/resources/prv_page_one.png
  + hbqtwidgets/resources/prv_portrait.png
  + hbqtwidgets/resources/prv_printer-1.png
  + hbqtwidgets/resources/prv_printer.png
  + hbqtwidgets/resources/prv_printpreview.png
  + hbqtwidgets/resources/prv_right-4.png
  + hbqtwidgets/resources/prv_rightall-4.png
  + hbqtwidgets/resources/prv_save-1.png
  + hbqtwidgets/resources/prv_save-doc.png
  + hbqtwidgets/resources/prv_text.png
  + hbqtwidgets/resources/prv_undo.png
  + hbqtwidgets/resources/prv_zoom-1.png
  + hbqtwidgets/resources/prv_zoom-in-1.png
  + hbqtwidgets/resources/prv_zoom-in.png
  + hbqtwidgets/resources/prv_zoom-original.png
  + hbqtwidgets/resources/prv_zoom-out-1.png
  + hbqtwidgets/resources/prv_zoom-out.png
  + hbqtwidgets/resources/splitter-h.png
  + hbqtwidgets/resources/splitter-v.png
  + hbqtwidgets/resources/up-1.png

  * hbqtwidgets/hbqtwidgets.qrc
    + Added more images as above.
   
  * hbqtwidgets/hbqtstd.ch
    + Added more constants to manage classes explained below.

  * hbqtwidgets/misc.prg
  + hbqtwidgets/toolbarex.prg
  + hbqtwidgets/visualitems.prg
  + hbqtwidgets/visualizer.prg
  + hbqtwidgets/previewer.prg
  + hbqtwidgets/properties.prg

  + hbqtwidgets/visualizer.ui

  * hbqtwidgets/hbqtwidgets.hbp
    + Added more sources and uis as above.

    This commit implements following classes extremely useful for
    desktop as-well-as mobile business applications. Now onwards
    the primary focus will reamin on the development of re-usable
    and platform independent components for faster development-to-market
    experience. All these classes I have pulled from my production
    applications and re-tuned to be useable as COM objects.

    Some of these classes are still in development but I am committing
    them as is to keep track of the changes as well as in anticipation
    of your feedback.

    1. CLASS HbQtScrollableToolbar  [ Status - Usable ]
        This class implements a scrollable toolbar which can contain
        n number of buttons and is usable on any type of device. Toolbar
        also shows up left-right visual indicators if buttons scroll
        past the either-side. The look can be controlled by provided
        methods. Height and width of the buttons, of icons and the
        gap between buttons is also adjustable. Both, horizontal
        and vertical orinetations are supported. Toolbars expect
        QHBoxLayout | QVBoxLayout as its parents.

    2. CLASS HbQtPrintPreview        [ Status - Usable ]
        This class extends the QPrintPreviewWidget with all the eliments
        embedded, as per QPrintPreviewDialog(), but as a components
        ready to be consumed by a QHBoxLayout or QVBoxLayout. QDilogs
        fare badly on mobile environments so I had a need to have it
        as a widget with additional elements. Still a couple of methods,
        for real-extended use, are still on my drawing-board. Stay tuned.

    3. CLASS HbQtPropertiesManager   [ Status - Under Development ]
       CLASS HbQtPropertySheet
       CLASS HbQtProperty
        This group of classes is responsible to manage the PropertySheet
        interface similar like Qt Creator and all other visual tools.
        But here this component may be used for a variety of business
        needs. For example, implimenting the data-entry screens based
        on PropertySheet. I am sensing how big usage this interface
        can provide so every care will be taken to honor Clipper variable
        types.

    4. CLASS HbQtVisualizer         [ Status - Under Development ]
       CLASS HbQtVisualItems
        These classes implement a COM like embeddable components to manage
        a variety of business needs VISUALLY. It is the same code base
        I started as IdeReports which is a part of HbIDE ( though totally
        non-functional ) via HbXBP engine. Now it is in the process of
        heavy changes and different vision of usability than it was
        thought-of at origin. Because it is a MUST requirement for my
        production development, I hope it will reach its maturity soon.

  + hbqtwidgets/tests/demovisualizer.prg
    + Demo application demonstrating all above components in action.



Saudações,
Itamar M. Lins Jr.

Novas classes p/ dispositivos móveis/Desktop

20 Out 2014 06:57

HBQT tá ficando muito boa... futuro promissor!

Segue imagem do demovisualizer.prg em execução:

demovisualizer_1.png

Novas classes p/ dispositivos móveis/Desktop

20 Out 2014 11:09

Pelo que eu entendi ele vai concluir o desenho de relatórios(Report) e também o desenho das telas(say/get/Buttons/etc) na HBIDE.
Vai crescer muito a HBIDE, Quem viver verá!!

Saudações,
Itamar M. Lins Jr.

Novas classes p/ dispositivos móveis/Desktop

22 Dez 2014 21:27

Itamar vc já usou um form dentro do aplicativo ?

Tentei carregar usando uma rotina que tem no site

http://www.elektrosoft.it/tutorials/hbqt/hbqt.asp

Mas ele pede a QUiLoader() e eu não sei como usá-la

Novas classes p/ dispositivos móveis/Desktop

23 Dez 2014 07:15

Amigos, basta criar um arquivo HBP para compilar o seu programa e incluir junto com os PRG o arquivo UI criado no QT Creator, depois no PRG para ler o arquivo UI basta usar a função hbqtui_NomedoArquivoUI(), por exemplo:

Código:
oUI:=hbqtui_teste()
oUI:show()
QApplication():exec()

Neste exemplo o nome do arquivo UI seria teste.ui

Abraços,

Novas classes p/ dispositivos móveis/Desktop

24 Dez 2014 17:37

Itamar, como a BETA , a minha já é a QT 5.4
Não entendi :-O

Novas classes p/ dispositivos móveis/Desktop

17 Mar 2015 00:03

Olá!

Toledo escreveu:no PRG para ler o arquivo UI basta usar a função hbqtui_NomedoArquivoUI()

Teria um exemplo maior disto? Qual lib ou .hbc tem que linkar? Estou recebendo o erro:
Código:
hbmk2: Erro: Referenciado, faltando, mas funções desconhecida(s): HBQTUI_UI(),
com meu arquivo ui.ui

Novas classes p/ dispositivos móveis/Desktop

17 Mar 2015 07:22

Alexandre, no seu arquivo HBP, além de relacionar os arquivos PRG e também os UI, incluir no início do HBP:

-w3
-es2
hbqt.hbc


Abraços,

Novas classes p/ dispositivos móveis/Desktop

19 Mar 2015 01:14

Olá Toledo.

Grato por responder. Mas, ainda não foi desta vez...

Não estou usando .hbc e sim linha de comando mesmo:
Código:
D:\TestesHB\ui>hbmk2 ui.prg c:\addons\hbqt\hbqtgui.hbc c:\addons\hbqt\hbqt.hbc
hbmk2: plugin: Warning: HB_WITH_QT points to incomplete QT installation.
       'uic.exe' executable not found.
Harbour 3.2.0dev (r1503131756)
Copyright (c) 1999-2015, http://harbour-project.org/
Compiling 'ui.prg'...
Lines 5167, Functions/Procedures 5
Generating C source output to 'C:\Users\A1459~1.SAN\AppData\Local\Temp\hbmk_a1uw0l.dir\ui.c'... Done.
C:/Qt/Qt5.4.0/Tools/mingw491_32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lQt5Core
C:/Qt/Qt5.4.0/Tools/mingw491_32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lQt5Gui
C:/Qt/Qt5.4.0/Tools/mingw491_32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lQt5Widgets
C:/Qt/Qt5.4.0/Tools/mingw491_32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lQt5PrintSupport
C:/Qt/Qt5.4.0/Tools/mingw491_32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lQt5Network
C:/Qt/Qt5.4.0/Tools/mingw491_32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lQtCore4
C:/Qt/Qt5.4.0/Tools/mingw491_32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lQtGui4
collect2.exe: error: ld returned 1 exit status
hbmk2: Erro: Executando linkeditor. 1
g++.exe C:/Users/A1459~1.SAN/AppData/Local/Temp/hbmk_a1uw0l.dir/ui.o C:/Users/A1459~1.SAN/AppData/Local/Temp/hbmk_a1uw0l.dir/hbmk_tdcqrz.o C:/Users/A1459~1.SAN/AppDa
ta/Local/Temp/hbmk_a1uw0l.dir/hbmk_cuowhf.o    -mwindows -Wl,--start-group -lgtqtc -lsupc++ -lhbqtcore -lQt5Core -lhbqtgui -lQt5Gui -lQt5Widgets -lQt5PrintSupport -l
hbqtnetwork -lQt5Network -lQtCore4 -lQtGui4 -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 -liphlpapi -lwinspool -lcomctl32 -lcomdlg32 -lshell32 -luuid -lole32 -loleaut32 -lmpr -lwinmm -lmapi32 -limm32 -lmsimg32 -lwininet -lhbpcre -lhbzlib   -Wl,--end-
group -oui.exe  -LC:/HB340/lib/win/mingw -LC:/HB340/addons/hbqt/lib/win/mingw

D:\TestesHB\ui>


Código:
D:\TestesHB\ui>set hb
HB_QT_MAJOR_VER=5
HB_WITH_QT=C:\Qt\Qt5.4.0\5.4\mingw491_32\include;C:\Qt\Qt5.4.0\5.4\mingw491_32\BIN;C:\Qt\Qt5.4.0\5.4\mingw491_32\lib

D:\TestesHB\ui>gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=C:/Qt/Qt5.4.0/Tools/mingw491_32/bin/../libexec/gcc/i686-w64-mingw32/4.9.1/lto-wrapper.exe
Target: i686-w64-mingw32
Configured with: ../../../src/gcc-4.9.1/configure --host=i686-w64-mingw32 --build=i686-w64-mingw32 --target=i686-w64-mingw32 --prefix=/mingw32 --with-sysroot=/c/ming
w491/i686-491-posix-dwarf-rt_v3-rev2/mingw32 --with-gxx-include-dir=/mingw32/i686-w64-mingw32/include/c++ --enable-shared --enable-static --disable-multilib --enable
-languages=ada,c,c++,fortran,objc,obj-c++,lto --enable-libstdcxx-time=yes --enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto --enable-graphite -
-enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --disable-sjlj-exceptions --with-dwarf2 --disable-isl-version-check --d
isable-cloog-version-check --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werr
or --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=i686 --with-tune=generic --with-libiconv --with-system-zlib --with-gmp=/c/mingw491/prerequisites/i686-w6
4-mingw32-static --with-mpfr=/c/mingw491/prerequisites/i686-w64-mingw32-static --with-mpc=/c/mingw491/prerequisites/i686-w64-mingw32-static --with-isl=/c/mingw491/pr
erequisites/i686-w64-mingw32-static --with-cloog=/c/mingw491/prerequisites/i686-w64-mingw32-static --enable-cloog-backend=isl --with-pkgversion='i686-posix-dwarf-rev
2, Built by MinGW-W64 project' --with-bugurl=http://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -I/c/mingw491/i686-491-posix-dwarf-rt_v3-rev2/mingw32/opt/in
clude -I/c/mingw491/prerequisites/i686-zlib-static/include -I/c/mingw491/prerequisites/i686-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -I/c/mingw491/i686-491-po
six-dwarf-rt_v3-rev2/mingw32/opt/include -I/c/mingw491/prerequisites/i686-zlib-static/include -I/c/mingw491/prerequisites/i686-w64-mingw32-static/include' CPPFLAGS=
LDFLAGS='-pipe -L/c/mingw491/i686-491-posix-dwarf-rt_v3-rev2/mingw32/opt/lib -L/c/mingw491/prerequisites/i686-zlib-static/lib -L/c/mingw491/prerequisites/i686-w64-mi
ngw32-static/lib -Wl,--large-address-aware'
Thread model: posix
gcc version 4.9.1 (i686-posix-dwarf-rev2, Built by MinGW-W64 project)

D:\TestesHB\ui>


Código:
D:\TestesHB\ui>path
PATH=C:\Qt\Qt5.4.0\5.4\mingw491_32\bin;C:\HB340\bin;C:\Qt\Qt5.4.0\Tools\mingw491_32\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\W
indowsPowerShell\v1.0\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;C:\Program Files (x86)\Win
dows Kits\8.0\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\MySQL\MySQL Utilities 1.3.6\;C:\Program Files
\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files\Microsoft SQL Server\120\Tools\Bin
n\;C:\Program Files\Microsoft SQL Server\120\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\Microsoft
SQL Server\120\DTS\Binn\;C:\Program Files\TortoiseSVN\bin

D:\TestesHB\ui>

Novas classes p/ dispositivos móveis/Desktop

19 Mar 2015 08:42

Alexandre, neste caso então crie o arquivo HBP para compilar este seu programa.

Por exemplo: teste.hbp
-w3
-es2
hbqt.hbc

ui.prg
ui.ui


Depois para compilar, digite:

HBMK2 teste.hbp

Agora uma pequena observação, fiquei meio perdido com tanta coisa no SET e PATH que você colocou na sua mensagem anterior. Então seria bom resumir um pouco tudo isto, basta apenas estes comandos para compilação:

set path=C:\hb34\bin;C:\hb34\comp\mingw\bin;%path%
set HB_COMPILER=mingw
set HB_QT_MAJOR_VER=5
SET HB_WITH_QT=C:\QT\QT5.4.0\5.4\mingw491_32\include


No PATH basta apenas a pasta \BIN do Harbour e a pasta \BIN do compilador MingW.

Abraços,

Novas classes p/ dispositivos móveis/Desktop

19 Mar 2015 23:08

Olá!

Tá difícil acertar...
Capturar2.PNG

Capturar1.PNG


Editado

Código:
//#include "hbqt.ch"

#include "hbqtgui.ch"

STATIC qApp
REQUEST HB_QT  <<<------------------ Comentando esta linha gera o executável e roda...

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

PROCEDURE Main()

   LOCAL oMinhaJanela //, oLayout

   oMinhaJanela := CarregaUI("ui.ui")

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

   oMinhaJanela:show()

   qApp:exec()

RETURN

FUNCTION CarregaUI( )
/*
   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 hbqtui_ui() // 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

/*
Function Main()

   LOCAL oUI //:= QMainWindow()

   oUI:=hbqtui_ui()
   oUI:show()
   QApplication():exec()

RETURN NIL
*/

Novas classes p/ dispositivos móveis/Desktop

20 Mar 2015 07:18

alxsts escreveu:REQUEST HB_QT <<<---- Comentando esta linha gera o executável e roda...

O problema estava ai, realmente este comando não é necessário em programa com uso da HBQT.

Abraços,

Novas classes p/ dispositivos móveis/Desktop

20 Mar 2015 09:28

Olá!

Obrigado! Realmente ainda tenho que aprender tudo sobre o assunto.

Novas classes p/ dispositivos móveis/Desktop

31 Jan 2018 20:27

gente sou novato neste tópico...
enfim, o que vem a ser a nomenclatura QT?
alguém pode dizer, pergunte ao "ok google", já fiz, e me respondeu com um montão de coisas que de nada entendi...
mas, alguém, aqui deva saber mesmo o que vem a ser esse "QT" em diversas LIBs:
MARINAS QT
HMG QT
etc
Postar uma resposta