Nativity of wx(python)

Hello,

I was just chatting with someone offering me advices whether to do my multi-platform desktop project in a single language (Python) or trying to do front-end in Python and back-end (extension) in e.g. Nim for speed reasons. Conclusion is that polyglot projects are not worth the trouble and wx/qt are only options for gui.

He also confirmed that wx(python) is easier to learn, but I was a bit surprised with his statement that "“wx did not feel native at all” and that (wx) “it tries to but Qt has more/better cross-platform abstractions”. Usually I think that wx is the best option for “native” toolkit, although “nativity” is not the main concerned for me choosing wxpython, but still curious if anyoen can comment it?

Sincerely,
Gour

I can think of a few situations where somebody might get that idea, for example on Linux with a Qt based desktop environment then GTK apps can look very out of place, depending on what themes are active. It’s also not hard to make things look or behave in a non-native way on any platform, if the developer doesn’t take the time to ensure they are using the widgets in the correct ways.

wxWidgets does use native widgets as much as possible, and fills in the gaps with generic implementations when necessary. Obviously there are platform-specific differences with the native widgets, so some of those things will sometimes leak through to the wx code. But if you use the native widgets in the expected ways that they are designed for, then those differences are not an issue.

On the other hand, since the same implementation code is used for all widgets on all platforms with Qt, then, yes, it is easier to be more consistent at the application layers. So it really boils down to which toolkit fits your needs, is easier to understand and to use, has less baggage (features you’ll never use), etc.

I don’t get that. Every WX app I’ve done has gone out of its way to use system-native widgets.

Granted I use it mostly on Windows apps so Linux or OSX might be spotty? Dunno. That doesn’t sound right considering how diligent the wx team has been on this matter.

Agreed. I guess the point I was trying to get across is that there are differences between the toolkits, but the importance of those differences is probably not as much as people think.

Hello Robin,

thank you for your reply as well as for work on wxPython for so many years!

OK, that one does not bother me too much since I’m practically always using GTK environments (Xfce /GNOME).

[quote]It’s also not hard to make things look or behave in a non-native way on any platform, if the developer doesn’t take the time to ensure they are using the widgets in the correct ways.
[/quote]

I’d like to hear a bit more about that one?

How can one learn to use widgets in the ‘correct ways’? Are those documented in wxWidgets docs?

I’ll do my project using Linux (Fedora) and do not have access to Mac OS machine.

Morever, Win XP was the last version of Windows I was occasionally using and even that mostly under some kind of emulator (Win4Lin, VMware, VirtualBox) so would like to learn how to make my app looking decently on other non-Linux/GTK platforms.

What about wxQt port? Is it going to be ever used in wxPython?

I believe wx(Python) is best fit in many/all regards. :wink: