Live data from Hacker News

WxWidgets 3.2

wxwidgets.org

71–80 of 84 posts

Re: WxWidgets 3.2

#71

Earlier quoted context omitted.

It's LGPL license. I wouldn't touch it with a stick when thinking about a real app.

From their ReadMe >> wxWidgets licence is a modified version of LGPL explicitly allowing not distributing the sources of an application using the library even in the case of static linking. [1] https://github.com/wxWidgets/wxWidgets

it's the same garbage license

Re: WxWidgets 3.2

#72

Earlier quoted context omitted.

A serious question: what are native controls on Windows? Is the Windows XP era where each control is its own HWND (and usually drawn with GDI+)? Is it Windows 7 era where the drawing is Direct2D? Windows 8 where the elements of the app come together with DirectComposition? Or maybe Windows 10 style which is an evolution of UWP (now rebranded WinUI), with drawing in Win2D?

Another question: what are native controls on Linux? Qt on KDE? Gtk on Gnome? Gtk2, Gtk3, or Gtk4? Or make your own X11 widgets?

You forgot GTK5 :) . Xaw3d is the best.

Re: WxWidgets 3.2

#73

Earlier quoted context omitted.

This isn't really a fault in WxWidgets. It's not like there are any good Go or Rust UI toolkits.

>> This isn't really a fault in WxWidgets. It's not like there are any good Go or Rust UI toolkits. GTK-rs is decent for rust on Linux. Not sure how it does on other platforms.

And which GTK library does it need? GTK 1, 2 ,3, 4 or 5 ?

Re: WxWidgets 3.2

#74

wxWidgets are a perfect choice if you want cross-platform native controls. Just a reminder, Qt doesn't use native controls, it just emulates the native look and feel. Besides wxWidgets I know only IUP that uses system native controls (though Cocoa is a work in progress), and IUP deals with just UI, wx is like a Qt, a lot more.

There is also Lazarus

Re: WxWidgets 3.2

#76

Earlier quoted context omitted.

A serious question: what are native controls on Windows? Is the Windows XP era where each control is its own HWND (and usually drawn with GDI+)? Is it Windows 7 era where the drawing is Direct2D? Windows 8 where the elements of the app come together with DirectComposition? Or maybe Windows 10 style which is an evolution of UWP (now rebranded WinUI), with drawing in Win2D?

Another question: what are native controls on Linux? Qt on KDE? Gtk on Gnome? Gtk2, Gtk3, or Gtk4? Or make your own X11 widgets?

Qt on KDE and the appropriate GTK version on Gnome, yes.

In practice, Qt looks much more native on Gnome than GTK does on KDE so you should go with Qt.

Re: WxWidgets 3.2

#77
post #24

Many people don’t know about XRC, which allows you to describe a window in an XML document much like HTML. It can be edited and live reloaded. Wonderful feature.

Seems cool for tweaking layout and styles on the fly, thanks for pointing this out.

I think many devs underestimate how important the JS world's Hot Module Replacement has become for frontend dev velocity. Live reload just makes visual work so much better.

Of course we all know the scourge that is Electron apps. Maybe now that native web view is becoming more available across desktop OS's we will see apps move to leaner frameworks. Tauri (which hit 1.0 yesterday) allows native system access, notifications, app tray, auto updates, polyglot backend via sidecars, and HTML/CSS/JS/TS frontend. Not native controls that many of us love, but much better than where we're at now.

Re: WxWidgets 3.2

#78
post #73

Earlier quoted context omitted.

>> This isn't really a fault in WxWidgets. It's not like there are any good Go or Rust UI toolkits. GTK-rs is decent for rust on Linux. Not sure how it does on other platforms.

And which GTK library does it need? GTK 1, 2 ,3, 4 or 5 ?

I'll respond to the lame joke. 1 and 2 are dead, 5 doesn't exist, and it supports 3 or 4.

Re: WxWidgets 3.2

#79

wxWidgets are a perfect choice if you want cross-platform native controls. Just a reminder, Qt doesn't use native controls, it just emulates the native look and feel. Besides wxWidgets I know only IUP that uses system native controls (though Cocoa is a work in progress), and IUP deals with just UI, wx is like a Qt, a lot more.

Also Yue, with bindings for C++, JavaScript, and Lua: https://libyue.com/ I haven't used it for Gtk or Windows, yet, but macOS support seems at least as good as the other targets.

Re: WxWidgets 3.2

#80
post #24

Many people don’t know about XRC, which allows you to describe a window in an XML document much like HTML. It can be edited and live reloaded. Wonderful feature.

Seems cool for tweaking layout and styles on the fly, thanks for pointing this out. I think many devs underestimate how important the JS world's Hot Module Replacement has become for frontend dev velocity. Live reload just makes visual work so much better. Of course we all know the scourge that is Electron apps. Maybe now that native web view is becoming more available across desktop OS's we will see apps move to lea…

I use Yue (libyue.com) with its Lua bindings. I compile Lua source files into a static binary, but I can flip a switch (in the environment) to load sources from a specific directory. This isn't hot reload--currently I still need to restart the application--but it wouldn't be too difficult to hot reload the sources.

How and when views reflect the new code would be more complex, but AFAICT (from https://www.geeksforgeeks.org/hot-reload-in-electronjs/) it's not exactly magic in Electron, either--browser views are reloaded in their entirety, and the main application is restarted entirely if its sources are changed, so you can lose state. You could probably do something more sophisticated in Lua, by dynamically updating the metatables of live objects (similar to prototypes in JS). That'd be a very leaky abstraction (presumably by Electron hot reload doesn't try it). You'd need to architect your code to be robust to missing or changed object state across versions of the code, or at least to annotate which objects are capable of being hot reloaded. But Smalltalk and, to a lesser extent, Objective-C developers have experience hot patching code this way, so it can be done.

Post reply on HN