Re: Windows Gui Frontend

2023-04-02 Thread dn via Python-list




On 03/04/2023 02.45, Michael Torrie wrote:

On 4/2/23 05:09, Dietmar Schwertberger wrote:

I also did evaluate all the GUI builder from time to time between
2000 and 2016 to find one that I could recommend to colleagues,
but could not find one. Then I started contributing to wxGlade
and I can say that since a few years it's as easy again to
build GUIs as it was with VB6.

I don't want to go back to coding GUIs manually. For most use
cases it's a waste of time and often it does not result in the
best GUI as it's not so easy to try out and rearrange elements.


But any modern GUI toolkit has sizers and layout managers. If you're
manually placing elements you cannot deal with HiDPI or changing window
sizes.  Rearranging happens automatically when using sizers and layout
managers.

That said, the future of GUIs is declarative, using XAML or some other
domain-specific language like QML.  Examples of this include QtQuick
(the long-term direction Qt is heading), and the various dot Net GUI
toolkits now popular including MS' own MAUI, WPF, Avalonia.

GUI designer tools (Qt Creator, Visual Studio) can be used to assist and
help layout the skeleton, but ultimately the GUI is defined by code. And
it works very well, is adaptive, and can automatically size and
rearrange. If you want portability to mobile devices, this is where it's at.

I've tried wxGlade but never could get into it, or wxWidgets in general.
  I used to use GTK a lot and did use Glade back then, and dynamically
loaded the UI definition files at run time.  Lately used more Qt with
QtDesigner, and even extended Designer to support using some custom
widgets I made.

but the future of Qt is clearly QtQuick, so I've been learning that.
Has its warts, but in general I like the declarative paradigm.  It's a
learning curve.  Overall it's fairly powerful, flexible and portable.  I
have used the designer in Qt Creator a bit, but it's often faster and
just as intuitive to write it in QML, since you're going to be dropping
into QML frequently anyway to set properties (not unlike having to set
widget properties in Qt Designer.  So I guess it's 6s using the
graphical designer vs straight Qt.


Do the two approaches acknowledge each other and enable 'round tripping'?
ie to use the best?better tool for particular jobs (and to cope with 
later-maintenance) can one start using one approach, switch to using the 
other, and then go back to the first?


--
Regards,
=dn
--
https://mail.python.org/mailman/listinfo/python-list


Re: Windows Gui Frontend

2023-04-02 Thread Grant Edwards
On 2023-04-02, Michael Torrie  wrote:
> On 4/2/23 05:09, Dietmar Schwertberger wrote:
>> I also did evaluate all the GUI builder from time to time between
>> 2000 and 2016 to find one that I could recommend to colleagues,
>> but could not find one. Then I started contributing to wxGlade
>> and I can say that since a few years it's as easy again to
>> build GUIs as it was with VB6.
>
> [...]
>
> But any modern GUI toolkit has sizers and layout managers. If you're
> manually placing elements you cannot deal with HiDPI or changing window
> sizes.

Ah, that's the brilliant thing about VB6 apps! They only work properly
on machines with the same resoultion and display/font configuration as
the developer.

--
Grant

-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Windows Gui Frontend

2023-04-02 Thread Igor Korot
Hi, Dietmer,

On Sun, Apr 2, 2023 at 1:14 PM Dietmar Schwertberger
 wrote:
>
> On 02.04.2023 18:26, Michael Torrie wrote:
> > Been a long time. I was initially turned off by the event handling
> > system of wx compared to the signals and slots of Gtk and Qt.
> When starting with Python GUIs in 1999, I evaluated both.
> Qt event handling had an advantage for C++ where the wxWidgets
> people had to use event tables. I don't know when wxWidgets
> added dynamic event binding, but with wxPython I don't know
> anything else than dynamic binding.

I think Bind() was added sometime in 2.9 as GSoC project.
And 
https://docs.wxwidgets.org/latest/classwx_evt_handler.html#a3b4a42f7263fd0a257a996a078ef802f
proves me correct: it is in "Since 2.9.0"

Thank you.

>
>
> Regards,
>
> Dietmar
>
> --
> https://mail.python.org/mailman/listinfo/python-list
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Windows Gui Frontend

2023-04-02 Thread Dietmar Schwertberger

On 02.04.2023 18:26, Michael Torrie wrote:

Been a long time. I was initially turned off by the event handling
system of wx compared to the signals and slots of Gtk and Qt.

When starting with Python GUIs in 1999, I evaluated both.
Qt event handling had an advantage for C++ where the wxWidgets
people had to use event tables. I don't know when wxWidgets
added dynamic event binding, but with wxPython I don't know
anything else than dynamic binding.


Regards,

Dietmar

--
https://mail.python.org/mailman/listinfo/python-list


Re: Windows Gui Frontend

2023-04-02 Thread Dietmar Schwertberger

On 02.04.2023 18:20, Michael Torrie wrote:

Well the thing is you don't need to generate Python code at all.  Qt
provides a UI loader class that loads the UI file at run time, builds
the objects in memory, and connects all your signals for you.


I know, but having to load the .ui file is awkward.
Even worse, you lose things like code completion.



   So much
nicer than code generation.


I absolutely disagree on this.

Regards,

Dietmar

--
https://mail.python.org/mailman/listinfo/python-list


Re: Windows Gui Frontend

2023-04-02 Thread Michael Torrie
On 2023-04-02 9:09 a.m., Dietmar Schwertberger wrote:
>> I've tried wxGlade but never could get into it, or wxWidgets in general.
> 
> Which version? Up to 0.7.2 I agree.

Been a long time. I was initially turned off by the event handling
system of wx compared to the signals and slots of Gtk and Qt.

> For me QtQuick and QML are a step backwards by some ten years when
> it comes to development speed.
> It's as much 'fun' as doing GUIs with HTML and JavaScript.
> Unfortunately, The Qt Company refused to provide an API for QtQuick to
> be able to use it without QML.
> Anyway, desktop development has long moved out of their focus
> (around 15 years ago when Nokia acquired Trolltech). It's not where
> their commercial customers are.

There are a number of desktop apps built in QtQuick.  KDE is
transitioning to QtQuick and it's been alright, not without some
consistency issues.  The Cura slicer is another example of a complete
desktop app written in QtQuick which looks and feels quite nicely on all
platforms.

For me, more and more I need to be able to run on mobile as well as
desktop.  Qt, GTK, or wx are just not good fits when you need that kind
of portability.

But traditional Qt will be with us or decades yet.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Windows Gui Frontend

2023-04-02 Thread Michael Torrie
On 2023-04-02 9:09 a.m., Dietmar Schwertberger wrote:
> That's what I hated with Qt Designer: it does not output Python code 
> but  a .ui file.
> This was the point where I could not recommend it to anyone.

Well the thing is you don't need to generate Python code at all.  Qt
provides a UI loader class that loads the UI file at run time, builds
the objects in memory, and connects all your signals for you.  So much
nicer than code generation.


-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Windows Gui Frontend

2023-04-02 Thread Dietmar Schwertberger

On 02.04.2023 16:45, Michael Torrie wrote:

But any modern GUI toolkit has sizers and layout managers. If you're
manually placing elements you cannot deal with HiDPI or changing window
sizes.  Rearranging happens automatically when using sizers and layout
managers.


I did not talk about pixel placement with wxGlade. That's not supported.
It's of course using sizers and with a hierarchy of sizers it's much easier
to rearrange things than it would be with pixel placement.


GUI designer tools (Qt Creator, Visual Studio) can be used to assist and
help layout the skeleton, but ultimately the GUI is defined by code. And


That's what I hated with Qt Designer: it does not output Python code 
but  a .ui file.

This was the point where I could not recommend it to anyone.


I've tried wxGlade but never could get into it, or wxWidgets in general.


Which version? Up to 0.7.2 I agree.


but the future of Qt is clearly QtQuick, so I've been learning that.
Has its warts, but in general I like the declarative paradigm.  It's a
learning curve.  Overall it's fairly powerful, flexible and portable.  I

For me QtQuick and QML are a step backwards by some ten years when
it comes to development speed.
It's as much 'fun' as doing GUIs with HTML and JavaScript.
Unfortunately, The Qt Company refused to provide an API for QtQuick to
be able to use it without QML.
Anyway, desktop development has long moved out of their focus
(around 15 years ago when Nokia acquired Trolltech). It's not where
their commercial customers are.

Regards,

Dietmar
--
https://mail.python.org/mailman/listinfo/python-list


Re: Windows Gui Frontend

2023-04-02 Thread Michael Torrie
On 4/1/23 09:37, Eryk Sun wrote:
> Here are a few of the GUI toolkit libraries in common use:
> 
> * tkinter (Tk)
> * PyQt (Qt)
> * PySide (Qt)
> * wxPython (wxWidgets)
> * PyGObject (GTK)
> 
> tkinter is included in Python's standard library.

Another good one is Kivy.  Especially if you ever want to target mobile
in the future.  https://kivy.org/
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Windows Gui Frontend

2023-04-02 Thread Michael Torrie
On 4/2/23 05:09, Dietmar Schwertberger wrote:
> I also did evaluate all the GUI builder from time to time between
> 2000 and 2016 to find one that I could recommend to colleagues,
> but could not find one. Then I started contributing to wxGlade
> and I can say that since a few years it's as easy again to
> build GUIs as it was with VB6.
> 
> I don't want to go back to coding GUIs manually. For most use
> cases it's a waste of time and often it does not result in the
> best GUI as it's not so easy to try out and rearrange elements.

But any modern GUI toolkit has sizers and layout managers. If you're
manually placing elements you cannot deal with HiDPI or changing window
sizes.  Rearranging happens automatically when using sizers and layout
managers.

That said, the future of GUIs is declarative, using XAML or some other
domain-specific language like QML.  Examples of this include QtQuick
(the long-term direction Qt is heading), and the various dot Net GUI
toolkits now popular including MS' own MAUI, WPF, Avalonia.

GUI designer tools (Qt Creator, Visual Studio) can be used to assist and
help layout the skeleton, but ultimately the GUI is defined by code. And
it works very well, is adaptive, and can automatically size and
rearrange. If you want portability to mobile devices, this is where it's at.

I've tried wxGlade but never could get into it, or wxWidgets in general.
 I used to use GTK a lot and did use Glade back then, and dynamically
loaded the UI definition files at run time.  Lately used more Qt with
QtDesigner, and even extended Designer to support using some custom
widgets I made.

but the future of Qt is clearly QtQuick, so I've been learning that.
Has its warts, but in general I like the declarative paradigm.  It's a
learning curve.  Overall it's fairly powerful, flexible and portable.  I
have used the designer in Qt Creator a bit, but it's often faster and
just as intuitive to write it in QML, since you're going to be dropping
into QML frequently anyway to set properties (not unlike having to set
widget properties in Qt Designer.  So I guess it's 6s using the
graphical designer vs straight Qt.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Windows Gui Frontend

2023-04-02 Thread Dietmar Schwertberger

On 02.04.2023 01:13, Alan Gauld wrote:

I did a deep dive examination of GUI builders back around
v2.6 and came away less than enthused. Things may have
improved since then but I've seen no real evidence of
that.

I also did evaluate all the GUI builder from time to time between
2000 and 2016 to find one that I could recommend to colleagues,
but could not find one. Then I started contributing to wxGlade
and I can say that since a few years it's as easy again to
build GUIs as it was with VB6.

I don't want to go back to coding GUIs manually. For most use
cases it's a waste of time and often it does not result in the
best GUI as it's not so easy to try out and rearrange elements.

Regards,

Dietmar
--
https://mail.python.org/mailman/listinfo/python-list


Aw: Re: Windows Gui Frontend

2023-04-02 Thread Karsten Hilbert
> The real time consuming stuff in building GUIs is getting
> the basic design right and keeping all the controls,
> keyboard bindings and menus in sync. State management
> in other words.

And cominmg up with sensible design choices _at all_.

> I did a deep dive examination of GUI builders back around
> v2.6 and came away less than enthused. Things may have
> improved since then but I've seen no real evidence of
> that.

Is this available anywhere ?

What GUI builders do (for me) is to make creating the GUI in a WYSIWYM way.

Like LyX for LaTeX.

Karsten
-- 
https://mail.python.org/mailman/listinfo/python-list