Skip to content

LionKimbro/liontk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

liontk

a Python Tcl/TK GUI system that emphasizes direct direct use of tcl

created: 2021-10-22; last updated: 2021-10-27

These are all the things that I want to do underneath the umbrella of this project:

  • create & maintain tools
    • liontk -- basic Python module for interacting with tcl/tk
    • liontkcomposer -- a simple tool for composing tcl/tk GUIs very quickly
    • liontkcomposer2 -- a more sophisticated tool for composing tcl/tk GUIs very quickly
    • liontkref -- a friendly and interactive reference, itself in tcl/tk + Python, for tcl/tk
  • make the tools easily installable, via pip install
  • collect & publish articles
    • what this is about (Python + tcl/tk, and in this particular way)
    • insights gained while working on this particular approach
  • education & propaganda
    • provide pointers to quality tcl/tk programming resources
      • how to program tcl/tk
      • how to program tcl/tk in Python
      • specific tools
    • note the programming philosophy behind this project
    • promote PySimpleGUI, as well, even though it's different than this
    • invite people to Lion's Internet Office

This is code... probably a framework, ... for working with tcl/tk code. It works according to my fairly peculiar Python programming style, which is odd, but in accordance with my Philosophy.

status:

  • I've uploaded the basic code, but it needs to be "productized" a bit, before it's fit for general consompution.
  • "Productizing" here means:
    • It requires some documentation about some of the -- very atypical today -- programming patterns it makes use of. (In fact, I think I need to create a general website about the programming ideas and patterns that I am exploring and making use of.)
    • It requires a conventional API documentation of core functionality.
    • It requires instructions about how to install and configure.

tkcomposer lets you write tcl/tk code directly in an edit window, and get automatic updates on what is produced on the side.

Here's a screenshot:

Simple tkcomposer Screenshot

(You can see more screenshots in this linked gallary that I made.)

While there are features that I would like to add (specifically, a button or command that pops out your GUI into a toplevel window,) it is able to do the core functionality, and do it well.

It also features a menu full of example code, so you can select the code for a widget, insert it, and just edit it in the edit pane. It dramatically speeds up development, because you don't have to look up options, unless they are unusual or weird ones. Not all of the examples are written yet -- just most of them.

status:

  • This is done and uploaded. It's fully usable.
  • Just download the git repository, step into the tkcomposer/ directory, and run python go.py.
  • Select "Insert | Frame" from the menu, and then "Insert | Button" or "Insert | Label", and away you go.

I am presently (2021-10-27) working on tkcomposer2 -- oriented towards making much larger user interfaces than it is easy to do with tkcomposer1.

Here's a screenshot:

Screenshot of tkcomposer2

(NOT STARTED YET)

I have long desired for there to be a tcl/tk program wherein you can construct tcl/tk commands, seeing all the options that are available, and documentation about what they mean, embedded all in the same place. It'd be a "tcl/tk command construction kit," in a way.

Honestly, it baffles me that this doesn't exist yet. Everybody needs to pass through this! And if you had it, there'd be zero mystery about how to construct tcl/tk commands, or what to expect from them.

So I wouldn't consider this project "complete" without it.

I wrote one article to introduce this project:

I have two other articles worth noting here, though they are not strictly part of this project:

None.

I want to be clear: Just because I structure my work, doesn't mean that it will be completed. I start a lot of things, and only a tiny fraction of them reach a mature state. That's okay with me -- I regularly see things reach maturity. But the fraction is very low. Still: I structure my work. Just understand that structure != commitment.

I am not paid for this work; rather, I work on things opportunistically. It often happens that I pick up a thread that I dropped say 8 years ago, because ideas stick with me for life, I have found. I just follow the energy of enthusiasm wherever it takes me, for however long it takes me, and then drop it until it comes back.

About

a Python Tcl/TK GUI system that emphasizes direct direct use of tcl

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages