wxWidgets 3.3.0

From: https://github.com/wxWidgets/wxWidgets/blob/v3.3.0/docs/readme.txt

wxWidgets 3.3.0 Release Notes

Welcome to the latest release of wxWidgets, a free and open source
cross-platform C++ framework for writing advanced GUI applications using
native controls.

wxWidgets allows you to write native-looking GUI applications for all the major
desktop platforms and also helps with abstracting the differences in the non-GUI
aspects between them. It is free for the use in both open source and commercial
applications, comes with the full, easy to read and modify, source and extensive
documentation and a collection of more than a hundred examples. You can learn
more about wxWidgets at:

Documentation is available online at:

wxWidgets sources and binaries for the selected platforms are available for
download from:

or, for a more more permanent but less convenient to use link, from

Please see Installing wxWidgets | wxWidgets for full
installation instructions.

Changes since 3.2

With more than 5300 commits since the last release, there are too many changes
to list them all here, but here is just a summary of the most important ones:

  • Support for dark mode in wxMSW under Windows 10 and later.
  • New Chrome-based wxWebView backend and many other wxWebView improvements.
  • Many improvements to wxAUI, including support for pinned and multiline tabs.
  • Support for WebP format in wxImage.
  • Support for high DPI cursors and animations.
  • Latest versions of 3rd party libraries.
  • Support for latest compilers (gcc 15, clang 19/Xcode 16) and C++ standards.

Please see the change log for the more complete list of various improvements:

https://raw.githubusercontent.com/wxWidgets/wxWidgets/v3.3.0/docs/changes.txt

Note that in spite of all these changes, wxWidgets 3.3 is almost fully
compatible with wxWidgets 3.2 and updating the existing applications to
use it shouldn’t require much effort. However please make sure to read the
“INCOMPATIBLE CHANGES” section of the change log above when upgrading to be
aware of the breaking changes in it.

Supported Platforms

This version of wxWidgets supports the following primary platforms:

  • Windows 7, 8, 10 and 11 (32/64 bits).
  • Most Unix variants using the GTK+ toolkit (version 2.6 or newer)
  • macOS (10.10 or newer) using Cocoa (x86-64 or ARM).

There is some support for the following platforms:

  • Most Unix variants with X11
  • Most Unix variants with GTK+ 1.2
  • Most Unix variants with Qt 5 or newer (experimental)

All C++ compilers in common use are supported.

Support for dark mode in wxMSW under Windows 10 and later Many were waiting for this !

2 Likes

This is very much off topic for the KiCad user forum, but as I like Open Source projects, KiCad uses wxWidgets and is even paying some wxWidgets people to help with fixing bugs.

Many KiCad users probably don’t even know what wxWidgets is. But don’t worry. only software developers (that is PC software, not your uC projects) need to know about this.

One of the problems with Kiсad was the support of dark mode on the windows platform. And it was related to the library from the post above.

2 Likes

I see wxWidgets mentioned often enough I almost know what it means. :wink: Well, mainly when I have to hunt down reasons I can’t compile.

WxWidgets are a fantastic framework to develop cross platform sw!!!
Wx provides native look and feel for each Windows version.
I’m very glad Kicad embraced this great tool!

Oh nice, I wonder if KiCad 9 will start supporting dark mode on windows in a minor update!

@RaptorUK Could you please explain your post?

Just highlighting that wxWidgets has some limitations that causes issues for KiCad, and was wondering if this latest update might address them.

WxWidgets have, as the other (qt) frameworks some issue.
But are IMO a great project and I’m glad the founder did choose wxW

Maybe in 9.99, a WxWidgets change is unlikely as a point upgrade to 9.0.x, too many surprises

Every now and then I attempt to dabble a little toe into desktop GUI programming, and I invested some time in QT. I quite liked the IDE, and also used it a bit for uC programming. I started disliking them when they started hiding the FOSS version and kept on pushing the commercial variant. QT has also had a long history of being a bit difficult about the FOSS version.

Because KiCad uses wxWidgets I also had a look at it (They have screenshots of a very ancient KiCad version on their website). I managed to click together a “Hello World” window in CodeBlocks in a single afternoon, and also did a bit with one of the graphical GUI design frameworks. I also ran some python examples which were about 10 lines of code to initialize & startup the wxWidgets GUI.

I did some more research, and wxWidgets is regarded as a quite easy to use and a good fit for simple to moderately complex applications. KiCad is (probably / maybe) stretching the limits of wxWidgets a bit. Years ago I read some posts about an option for KiCad to switch to another GUI library, but it was deemed too complex to change that. I’m glad that KiCad is now also contributing a bit to wxWidgets.

The nightlies will eventually once i sort out wxpython. The wxpython devs seem to have no intention to support 3.3.

9.0 will remain on 3.2

1 Like

Thanks for the info!

Note for those who don’t know, wxWidgets uses odd/even versioning so 3.3 is considered a “development” release (3.2 is stable, and 3.4 will be stable). While in general wxWidgets development releases are stable enough to use in the real world, this means that more conservative Linux distributions will typically not support any of these development releases.

KiCad controls what version of wxWidgets we use on Windows and macOS, so we can move to 3.3 earlier (likely for the 9.99 nightlies / 10.0 stable release) and test how it is. But, on Linux we will likely stick with 3.2 for longer.

3 Likes

There is some support for the following platforms:

  • Most Unix variants with X11

Intriguing, this (my emphasis) makes it sound a little like they’re moving away from X11 generally? I know there are still blocking issues for wxWidgets on Wayland but I wonder if this indicates that they’re actively pushing in that direction


In my observations, library updates occur most quickly in flatpack.

It’s not that wx doesn’t support Wayland.

Wayland doesn’t support applications that want to be something more than a generic phone application. The issues that kicad has are mostly on Wayland’s side.

This refers to the wxX11 port, which is hardly used these days.
Typically the wxGTK port is used (via GTK 3)

So we need to wait wxpython will support 3.3? Or exists other solutions? It would be so cool to try dark mode on windows. Generally this is main feature i need in KiCad.