Hacker News new | ask | show | jobs
by felixr 560 days ago
These are Go bindings for Tk, a cross-platform widget toolkit initially developed as extension for Tcl. Nowadays a lot of languages have bindings for Tcl/Tk. Python for example has been including tkinter [0] for a long time.

[0]: https://docs.python.org/3/library/tkinter.html

4 comments

Seems Tk is now the default cross platform UI for any language. It is doing for local apps what JavaScript has not - a usable toolset for majority of use cases without a ton of overhead and interference. I e only played with tcl/tk over the years - now will put in some hard yards to try in depth. Golang+tk for heavy lifting and server side and tcl/tk for scripts and as hoc things. After 50 years of casual/prof development this might be my personal version of nirvana. YMMV.
> Seems Tk is now the default cross platform UI for any language.

So let's hope someone writes a wasm binding.

yes, for python, from 1.5 or early 2.x versions onwards, iirc. I've used py a bit from 1.5 and much more from early 2.x, is how i know this.
yes, perl, python and ruby, for example.
Really? Would love to see a binding for Powershell. Just for cross-platform shell scripts to be able to disable a pop-up for input etc. Just makes them more accessible.
That would be WPF. It uses Tk under the covers.
I believe that has been removed in later versions as the old examples I find online don't work in Powershell

> InvalidOperation: Unable to find type System.Windows.Forms.MessageBoxButtons].

This still works today for me:

    Add-Type -AssemblyName PresentationFramework
    [XML]$form = @"
       <Window 
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            Title="MainWindow" Height="450" Width="800">
        <Grid>
            
        </Grid>
        </Window>
    "@

    $NR = (New-Object System.Xml.XmlNodeReader $form)
    $window = [Windows.Markup.XamlReader]::Load($NR)

    $window.ShowDialog()
Ah, my bad. It is inspired by Tk. Should still be usable across most things today.