Página 1 de 1

Novas classes p/ dispositivos móveis/Desktop

Enviado: 19 Out 2014 23:17
por Itamar M. Lins Jr.
Estou aguardando QT 5.4 final, já estão testando a beta...

Código: Selecionar todos

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

Enviado: 20 Out 2014 07:57
por Toledo
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

Enviado: 20 Out 2014 12:09
por Itamar M. Lins Jr.
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

Enviado: 22 Dez 2014 22:27
por Fernando queiroz
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

Enviado: 23 Dez 2014 08:15
por Toledo
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: Selecionar todos

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

Enviado: 24 Dez 2014 18:37
por Fernando queiroz
Itamar, como a BETA , a minha já é a QT 5.4
Não entendi :-O

Novas classes p/ dispositivos móveis/Desktop

Enviado: 17 Mar 2015 00:03
por alxsts
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: Selecionar todos

hbmk2: Erro: Referenciado, faltando, mas funções desconhecida(s): HBQTUI_UI(),
com meu arquivo ui.ui

Novas classes p/ dispositivos móveis/Desktop

Enviado: 17 Mar 2015 07:22
por Toledo
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

Enviado: 19 Mar 2015 01:14
por alxsts
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: Selecionar todos

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: Selecionar todos

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: Selecionar todos

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

Enviado: 19 Mar 2015 08:42
por Toledo
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

Enviado: 19 Mar 2015 23:08
por alxsts
Olá!

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

Código: Selecionar todos

//#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

Enviado: 20 Mar 2015 07:18
por Toledo
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

Enviado: 20 Mar 2015 09:28
por alxsts
Olá!

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

Novas classes p/ dispositivos móveis/Desktop

Enviado: 31 Jan 2018 21:27
por microvolution
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