
--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: http://groups.google.com/group/harbour-users
---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--Unfortunately the wvw library is a Windows-only solution. (I use it and migrated some clipper-era programs with limited rework - but Linux?)
What is the Linux one I am getting confused with ? GTK or something similar?? .. Mr Kresin from Russia used it for a multi-platform GUI library. If this route is taken, need a mutli-platform solution and the current ability to support headless servers.
The reason I uses Marinas is because it has good multi-platform support (QT based)
I'm happy with hwgui
A+
--
Sure, but is there a better solution now for multi-os harbour gui programming ?
qt is a false good idea, as Linux builds (Ubuntu for example) use different version qt4 or qt5, and there is no integrated install, which causes ennoying problems ... That's the reason why I leave hbqt
... as Linux builds (Ubuntu for example) use different version qt4 or qt5, and there is no integrated install, which causes ennoying problems ...If you weren't able to have it running correctly doesn't mean Qt is bad. ...
Here is the output of wvwtest.prg.
Unable to build with qt4
'svn co http://svn.code.sf.net/p/qtcontribs/code/trunk@316 .'
where do you 'destroy' the created GUI objects ?
There never was a 'ComboBox', but a ListBox in conjunction with a 'GET':
Hi,
See you qtcontribs?
\harbour\addons\hbqtwidgets\tests\pureclip.prg
//-----------------------------------------------------
...
/* Harbour standards SAYs and GETs */
@ 1, 02 SAY PadL( "Upper Cased Alphabets:", nPdL ) GET cText VALID {|oGet| cText == "ABC" .OR. cText == "DEF" .OR. Udf1( oGet ) } PICTURE "@!KA"
@ 2, 02 SAY PadL( "Birthday:", nPdL )
@ 2, nColGet GET dDate WHEN {|| cText == "ABC" } COLOR "B/GR*" ;
VALID {|| AChoice( 5, 5, 12, 20, { "Abc","Cde","Efg","Fgh","Ghi" } ), dDate >= 0d19560604 }
@ 3, 02 SAY PadL( "Max 6 Decimals:", nPdL )
@ 3, nColGet GET nNumb PICTURE "@Z 9,999,999.999999" WHEN {|| DispOutAt( MaxRow(), 20, "Harbour" ) } VALID nNumb > 600 .AND. nNumb < 6000000
@ 4, 02 SAY PadL( "Logical - Married:", nPdL ) GET lMrd PICTURE "Y"
@ 5, 02 SAY PadL( "Telephone Number:", nPdL )
@ 5, nColGet GET cTele PICTURE "@! (999)999-9999"
@ 6, 02 SAY PadL( "Upper Lower Upper:", nPdL )
@ 6, nColGet GET cJust PICTURE "@A" COLOR "W+/B*" VALIDATOR {|cText,nPos| UpperLowerUpper( @cText, @nPos ) } VALID {|| GetAsChild_1() }
@ 7, 02 SAY PadL( "Scrolling Catalog:", nPdL )
@ 7, nColGet GET cCata PICTURE "@S15 !!!-!!!-!!!!!!!!!!!!" VALID {|| GetAsChild() }
@ 1, 52 SAY "Val[1]"
@ 1, 60 GET val[1] PICTURE "@!"
@ 2, 52 SAY "Val[2]"
@ 2, 60 GET val[2] PICTURE "@K 99"
@ 3, 52 SAY "Val[3]"
@ 3, 60 GET val[3]
@ 5, 52 SAY "Deptt:"
@ 5, 60, 5, 69 GET cDeptt COMBOBOX aDeptt VALID {|oGet| HB_TRACE( HB_TR_ALWAYS, oGet:varGet() ), .T. }
@ 7, 52 SAY "Salary:"
@ 7, 60 GET nSlry PICTURE "@KE 99,999" VALID {|| nSlry > 600 .AND. nSlry < 17000 }
@ 9, 48 SAY "Done:"
@ 9, 54 GET lDone CHECKBOX
@ 9, 02 SAY "Notes:"
@ 10, 02, 16, 55 GET cNotes MEMOEDIT COLOR "N/rgb(255,255,230)" WHEN cText == "DEF" VALID "Harbour" $ cNotes ;
PROPERTIES {|oGet,oControl| SetControlProp( oGet, oControl, "tooltip", "The notes must contain 'Harbour' somewhere" ) }
@ 9, 60 SAY "Select:"
@ 10, 60, 16, 69 GET cList LISTBOX aList WHEN cText == "ABC" VALID {|| HB_TRACE( HB_TR_ALWAYS, cList ), .T. }
oBrowse := BrowseArray( NIL, .F. )
//
@ 18, 02, 24, 42 GET lBrowse HBQTBROWSE oBrowse
//@ 18, 44, 24, 69 GET s_cImage IMAGE DONOTSCALE WHEN {|| .F. }
@ 18, 44, 24, 69 GET s_cImage IMAGE WHEN {|| .F. }
@ 26, 25, 26, 44 GET lOk PUSHBUTTON "OK" ACTION {|| iif( Alert( "Save Data?", {"Yes","No"} ) == 1, "cText", "cNotes" ) } ;
WHEN nSlry > 700 .AND. nSlry < 17000
@ 26, 50, 26, 69 GET lCancel PUSHBUTTON "Cancel" ACTION {|v| v := Alert( { "Cancel Pressed!", "Should we terminate the Form ?" }, { "Yes","No" }, "W+/N", 5, "Really?", 2 ), ;
iif( v == 1, GetActive():parent():close(), NIL ) }
/* Bring on browser as a selection list */
SetKey( K_F2, {|| BrowseArray( GetActive():parent(), .T. ) } )
/* Caclulator callable with F10 */
SetKey( K_F10, {|| HbQtCalculate( GetActive():parent() ) } )
READ PROPERTIES {|oWnd,oGetList| SetFormProperties( oWnd, oGetList ) }
...
//-------------------------------------------------------------------------------------------------------------------
Regards,
Juan
El 04/04/2015 a las 12:06 a.m., Ash escribió:
--Hello,
I wish the following Clipper controls were part of Harbour core but in GUI form and using the same syntax - things like:
@... Say
@... Get@... Box
Check Box
List Box
Push Button
Radio Button
Radio Group
Scroll Bar
These controls are enough to write very good looking business applications in a way that we have been used to from Clipper days. Writing business applications is hard enough never mind the complexities of add-on GUI libraries.
My 2 cents worth.
Regards.
Ash
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: http://groups.google.com/group/harbour-users
---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
3) How do the current Harbour architects feel about this Visual Clipper direction and how does it fit into there long term plans? (Przemek and Viktor?)
--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: http://groups.google.com/group/harbour-users
---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Bruno Luciani Area Ingenieria Brawnius Tecnologia y Servicios BWS Central de Monitoreo San Francisco Javier 1066 Ramallo - 03407-422178/422185 www.brawnius.com.ar www.bwsalarmas.com.ar
gathered all master programmers , have them discuss how to declare the calling properties and methods , and push them to follow the rules
it's simple
regards
Domenico
Thanks for jumping in and pointing out the pitfalls inbuilding process of HbQt in general, and, on Linux specifically.
Since Oct 2012, I am the only one who developed, maintained, released,
>HBQT needs general cleanup. [ ... ]
Viktor ...
Przemek and All
BTW, before starting, I must state that _your mere attention_ towardsHbQt is a big _reward_ for me. This is the first time in the whole historyof HbQt that Harboureans are reading something written about HbQt by your pen.Thank you very much, you have made my day!
Viktor can, but he simply has refused. And I understand his viewpoint, no regrets.
... or just the fact that I could never wholeheartedly commit tothe idea of a fat desktop client ...
---------- 6 files(s)
5.621.248 Qt01.exe ( My App )
4.634.112 Qt5Core.dll
5.004.800 Qt5Gui.dll
267.776 Qt5PrintSupport.dll
4.410.368 Qt5Widgets.dll
19.938.304 bytes
Hi Viktor !... or just the fact that I could never wholeheartedly commit tothe idea of a fat desktop client ...hbQT is a wonderful project and worth each second needed to learn about it :-)
QT files I need on desktop ( IMHO: not a fat client )---------- 6 files(s)
5.621.248 Qt01.exe ( My App )
4.634.112 Qt5Core.dll
5.004.800 Qt5Gui.dll
267.776 Qt5PrintSupport.dll
4.410.368 Qt5Widgets.dll
19.938.304 bytes
--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: http://groups.google.com/group/harbour-users
---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
qt 5.6 is plaed for 16th March 2016 and is a Long TermSupport Release like Qt 4.8
http://blog.qt.io/blog/2015/12/18/introducing-long-term-support/
2016-03-02 22:04 GMT+01:00 Pritpal Bedi <bedipr...@gmail.com>:--
-
Long term support, because in next release...
All in all one thing this thread demonstrates is the lively interest in a Visual Harbour/Clipper .... QT still seems the most likely multi-platform candidate, although the Fastlight toolkit (mentioned above) could also be an option - personally I have never heard of it and need to find time to have a look.
There is an other factor: People started building upona unfinished and broken foundation quite early on. Thiswas pretty bad even years ago and didn't help to makeupdates or changes.Lastly there is the human factor: for some reason allattempts to touch the fundamentals in HBQT derailedin some ways or another.
Hi Viktor,
On Thursday, March 3, 2016 at 12:57:42 PM UTC-6, vszakats wrote:HBQT can work, if memory is managed manually. This iswhat Marinas seems to be doing [1]: There is a central hash,declared as PUBLIC to keeps track of objects.
Totally agree.There is an other factor: People started building upona unfinished and broken foundation quite early on. Thiswas pretty bad even years ago and didn't help to makeupdates or changes.
Here just to say wooohaaaaa!!!! more than 18K lines of code only to keep track of qt objects used. I can't imagine the hurdle when a new qt version arrives.This a job that the HBQT library would have to make. Period
Anyway, Marinas works flawlessy, but it may run 10x the speed if moving to a fully OOP way...
I don't know if this is the real reason for the central hash. Marinas uses a procedural approach to work on objects. I think that changing preprocessor from procedural to OOP allows to lower the lines of code to no more than 500....
Anyway, Marinas works flawlessy, but it may run 10x the speed if moving to a fully OOP way...
updates or changes.Yes, really. A lot of code was written, and never updated when changes were made to hbQt internals. More, xhbp compatibility layer was written and it was also used to write hbide, but it was used only for some widgets...
Qt and hbQt can do it, indeed ! It is just necessary make Qt cooperate :-.)
Qt and hbQt can do it, indeed ! It is just necessary make Qt cooperate :-.)Okay, so you say that QT _can_ be made work tomanage memory correctly.
For most of GUI programs users need rather simple set of graphic
widgets. I've seen that FLTK (http://www.fltk.org) was suggest as
good backend for Harbour GUI library. It's small and license is
Harbour compliant (LGPL + exception for static linking just like
in our license). It's possible to create final self contain quite
small static binaries easy to install. The only one drawback is
C++ though it seems that they not use any tricks with metaclasses
and dynamic bindings like in QT (slots and signals) so maybe some
more restrictive modern C/C++ compilers will not complain about it.
Viktor can you check it?
I read through the wxWidgets and FLTK websites and both seem viable candidate's, but further investigation is needed. wxWidget is just as heavy as QT and FLTK is much lighter - which justifies Przemek suggested path forward but I understand Vicktors concerns. Really Visual Harbour does not a full set of widgets just a subset.
Hi Viktor,I was looking at the Widget object depth and relationships in the documentation ... not total source code - apologies for not being clearer. I plan to look closer at FLTK but
judging from screenshots I think wxWidgets is better looking and would be happier with either a wxWidgets ot QT path - and given the huge amount of work on HbQT I still think it might save time starting with trying to fix it and move forward . FLTK is only attractive because it is lightweight and should be fairly straightforward - except on the Mac platform.
Hi fperillo,Actually Marinas performance - with one or two exceptions - seems quite good, although architecturally it could be improved in my view . Not liking to tie my projects to one special syntax - I tried two methods, both relying on wrapping Marinas commands - so they were coded in only one place . Firstly, I tried a kind of @SAY/GET syntax and used that to map onto functions that encapsulated the Marinas commands, this kind of worked. Next I tried defining objects that wrapped the Marinas commands and that kind of worked as well.My main take away from these effforts was that the @SAY/GET syntax was the cleanest and most readable way to define the graphics elements - the least code to write. This should be the way forward with Visual Harbour/Clipper.I am willing to help with Visual Harbour/Clipper code - my C is rusty, but I have worked as a commercial C coder in the past so I guess it will come back.I read through the wxWidgets and FLTK websites and both seem viable candidate's, but further investigation is needed. wxWidget is just as heavy as QT and FLTK is much lighter - which justifies Przemek suggested path forward but I understand Vicktors concerns. Really Visual Harbour does not a full set of widgets just a subset.
If you want to separate HBQT for QT4 and QT5 then it's OK for me.
Please remember that QT4 is still base library in many *nix systems
so programs using HBQT4 will not need any additional libraries and
functionality given by QT4 is usually enough for these systems.
Anyhow I also tested HBQT in MS-Windows and all what I wrote about
it is also a problem in this system. Just try to load Harbour and
HBQT source code to new "clean" system. Install also QT version you
prefer. Then compile harbour and HBQT and check if the process can
be completed with single compilation step.
QT is huge library which tries to wrap everything. We do not need
all it's functionality because we have our own native solutions.
The second problem with this library is C++. It introduces additional
dependencies and it's very hard to create clean wrappers for other
languages (it's not harbour only problem, just read about limitation
and problems in PyQt) anyhow it's possible though it needs a lot of
works.
HBQT is incredible big job and I believe it's production
ready for people knowing it well and their internal bindings so
can write code on Harbour level which do not volatile some hidden
for normal users rules.
I also created few small test programs
recently and I like the results. But when I made some deeper
experiments I've found the not all things are cleanly cleanup
and I had to update the code.
It means that it's possible to write
well working application but it's also possible to make it in wrong
way what may cause more or less serious problems with unreleased or
corrupted memory. I do not know if over all protection for wrong
code can be even reached but I hope we can at least well document
constructions which need special user attention.
Now HBQT is such big project that I cannot even say what it does
in all places. It's very hard for me to start working on it. Of
course I can change some separated things I need but I do not see
the "whole picture".
Maybe I can help in a little bit different way.
For most of GUI programs users need rather simple set of graphic
widgets. I've seen that FLTK (http://www.fltk.org) was suggest as
good backend for Harbour GUI library. It's small and license is
Harbour compliant (LGPL + exception for static linking just like
in our license). It's possible to create final self contain quite
small static binaries easy to install. The only one drawback is
C++ though it seems that they not use any tricks with metaclasses
and dynamic bindings like in QT (slots and signals) so maybe some
more restrictive modern C/C++ compilers will not complain about it.
Viktor can you check it?
If it can be cleanly compiled on MacOSX with new CLANG then I'll
look closer on it and check what is the chance to create simple
wrapper. If it's possible then we can try to create general PRG
layer for GUI libraries with replaceable backend. This backend
will use FLTK at the beginning and then we can try to replace it
with backend for QT and finally bound with HBQT adding all other
functionality and documenting what cannot be ported or what was
ported with some potential problems and how user should avoid it.
I agree it should be separated project. Anyhow we will need
developers who can work on it. I will not find enough spare time
to make it myself.
Hello,I wish the following Clipper controls were part of Harbour core but in GUI form and using the same syntax - things like:@... Say
@... Get@... Box
Check Box
List Box
Push Button
Radio Button
Radio Group
Scroll BarThese controls are enough to write very good looking business applications in a way that we have been used to from Clipper days. Writing business applications is hard enough never mind the complexities of add-on GUI libraries.My 2 cents worth.Regards.
Ash
If you want to separate HBQT for QT4 and QT5 then it's OK for me.
Please remember that QT4 is still base library in many *nix systems
so programs using HBQT4 will not need any additional libraries and
functionality given by QT4 is usually enough for these systems.
--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: http://groups.google.com/group/harbour-users
---
You received this message because you are subscribed to a topic in the Google Groups "Harbour Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/harbour-users/A4SCm8a6W8w/unsubscribe.
To unsubscribe from this group and all its topics, send an email to harbour-user...@googlegroups.com.
Hello,I wish the following Clipper controls were part of Harbour core but in GUI form and using the same syntax - things like:@... Say
@... Get@... Box
Check Box
List Box
Push Button
Radio Button
Radio Group
Scroll BarThese controls are enough to write very good looking business applications in a way that we have been used to from Clipper days. Writing business applications is hard enough never mind the complexities of add-on GUI libraries.My 2 cents worth.Regards.
Ash
--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: http://groups.google.com/group/harbour-users
---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
All the others sub-projects are based on this one and are written in Harbour language. And since we are all Harbour programmers here, almost everybody can update the sources.
On Thu, 03 Mar 2016, vszakats wrote:
Anyhow it would be nice if
can reuse meta class descriptions created for wrappers to
other languages. I.e. such description exists for PyGTK and
Phil Krylow used it in xbGTK.
Viktor,hbqt subdir is the only one requiring c++ knowledge. qtgui is part of hbqt.
hbqt_hbqplaintextedit.cpp has been moved from hbide because it was said that hbide and other sub-projects should not contain c++ code. It is necessary to have it in c++ because in its current form, there is no other standardized way to overload protected methods.
So, if you want to list what is bad in the repository... well, I already know! :-)))
If you'd like to help a bit, one thing would be how to compile and use the library with or without a "make install", also splitting hbQt from the other sub-projects.
So, if you want to list what is bad in the repository... well, I already know! :-)))
If you'd like to help a bit, one thing would be how to compile and use the library with or without a "make install", also splitting hbQt from the other sub-projects.
--
--
You received this message because you are subscribed to the Google
Groups "Harbour Users" group.
Unsubscribe: harbour-user...@googlegroups.com
Web: http://groups.google.com/group/harbour-users
---
You received this message because you are subscribed to the Google Groups "Harbour Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-user...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
One question: is there a way to specify a directory in which to search for .hbc files in current hbmk2 using environment variables?Viktor, disregard my message... probably we will never agree on hbQt :-)I have an idea on how to proper implement inheritance and everything but I have no time to implement it. I can retrieve the original post I did in the past.
On Thu, 03 Mar 2016, vszakats wrote:
Hi Viktor,
[...]
Thank you very much for your tests. I do not think it's
worth to invest more time if it has such problems in OSX.
> In the meantime, what about wxWidgets? It looks active, with
> a fresh release, maintained homepage, downloads, relatively
> clean packages in Homebrew and MSYS2 (with slightly less
> intrusive dependencies). It looks rather good on Windows
> and Linux and seems to be at least QT-ish quality on OS X
> (disclaimer: based on internet screenshots). I also have some
> good experiences with it while making tests with Teo's wxHarbour.
> Overal larger than FLTK though, but both include vendored
> code and wxWidgets hosts code for every conceivable native
> GUI backend.
Probably it's much better choice with the exception to size
and static self contain binaries. Anyhow it would be nice if
can reuse meta class descriptions created for wrappers to
other languages. I.e. such description exists for PyGTK and
Phil Krylow used it in xbGTK. BTW xbGTK looks realy nice:
http://xbgtk.sourceforge.net/
It's small and compact. I haven't tried it in last years so
as soon I'll find some spare time I'll do that.
wxWidget is actively developed so here we can expect that
core functionality will work as expected. Anyhow if we plan
to create wrappers for C++ code then we will have to define
how to resolve problems which are common to C++ libraries
and exists also in QT.
In the upper level languages with automatic detaching of local
variables like Harbour people used to write code without setting
and removing explicit references. If we want to replicate it and
add support for inheritance from wrapped objects so users can
define new instance variables then we have to add code which
creates such bindings in hidden way and remove them when
necessary. Such general layer can be used by different projects.
I also agree that classes should be generated automatically
from metafiles. We can save a lot of time if we can reuse
already created descriptions.
Downside with GTK is ..
Should Harbour have an official GUI library?
Should Harbour have an official GUI library?