UberGui is a lightweight multi-threaded, webRender UI module for TouchDesigner

Overview

UberGui V4

UberGui is a lightweight multi-threaded, webRender UI module for TouchDesigner projects. The aim is to solve the trifecta of challenges building UI's in TouchDesigner often poses: being fast, feature rich, and visually appealing.

Additionally, UberGui is built as a layer of abstraction directly on top of Custom Parameters, so you can use this in existing projects with little to no additional refactoring.

Fast, Beautiful, with TouchDesigner-centric features.

Performance

UberGui uses the webRender TOP in TD which runs a separate threaded instance of an embedded chromium browser. You can spawn many UG UI's and each will run independently of the main TouchDesigner TOE. Keeping your UI's from bogging down your real-time projects.

Both real time performance when many parameters are animated AND the speed in which a totally new ui is generated is very fast.

ubergui performance animated

ubergui performance slider

Resting performance is very low, just the cost of the web render TOP. NOTE: You can even disable the "Enable Thread" parameter, when you want to fully shut down the cook times of UG, for example when a certain window is not open, or part of the software not visible.

ubergui performance resting

Aesthetic

Since UberGui is built on html/css we have a massive array of pre existing tech and styling options to leverage to build out compelling UIs. For this tool, I've exposed many of these css styling variables to TD, through a custom parameter styles page. You can modify/expose as many others as you'd like very easily with the parameter injection find/replace method.

ubergui colors

You can also change the horizontal alignment of several elements from the styles page.

ubergui colors

Features

UberGui is built to layer directly on top of existing projects that utilize Custom Parameters, and is intended to be a visual and functional extension of that feature set in TouchDesigner.

That said, it does offer many additional ways to manipulate and set numerical values that can speed up workflows and improve the experience greatly. Those features are covered below.

Using UberGui

Initial Setup

The fastest way to get going is to just download the Tox file in this repo, and drag it into your project. If you haven't used UberGui before, I suggest cloning the entire repo or downloading a zip file, and opening the UberGui_V4_Release.toe file to see how to use it with examples.

Input Mode

UberGui supports operation via mouse, and via touchscreen. The default mode is mouse, however you can change the Input Mode parameter shown below to activate Touch mode. If you do this, it's usually recommended to increase the height of parameter rows, and headers so it's easier to interact with them.

ubergui input mode

Page Filtering

UberGui by default is looking for any custom parameter pages on your source object. If you have some custom pages you wish to have visible, and others not - you can use the other page filtering mode in the config page, which will only show pages named with all upper case characters.

ubergui page filtering

Scroll Speed

If scrolling or touch interactions are too fast or too slow, you can change the speed and acceleration below:

ubergui scroll speed


Adjusting Values via Sliders

You can adjust the value of any type of numerical parameter just dragging left and right. The min/max ranges of the parameter will determine the range. Menu parameters can also be treated like a slider.

ubergui slider adjustment


Manual Entry via Field

Double clicking on any field will launch an editable field that you can type values into. Most parameters have this ability, but some do not (like the Menu parameter).

ubergui field entry1

You may also tab to next for quick entry of several values either in a parameter tuple row or simply down the line. Each tab press will launch a field in the next parameter, if it supports a field.

ubergui tab through

You can also left click on any label, to automatically enter field entry mode for it's parameter (if supported).

ubergui field entry 2

You can also type in valid python expressions (in TD math is imported by default for us). These will not be set to the TD expression mode of the parameter, it will simply be evaluated when set.

ubergui field entry expr

You are able to evaluate expressions using many of the common measurement units as well (the assumed default unit cm).

ubergui field entry units


Scroll Wheel

Depending on where your mouse is inside the UI, the scroll wheel will perform one of two functions generally.

When scrolling inside a parameter slider on the right half of the UI, it will adjust the parameter value in increments ( ctrl and shift will scale the increments accordingly )

ubergui slider scroll

When scrolling on the left side of the UI, this will scroll vertically through your UI if there is a scroll bar.

ubergui slider scroll down


Parameter Reset

Right Clicking on any parameter label will reset the value to it's TD parameter set default.

right click reset


Auxiliary UI

Menu and Color parameters have special auxiliary UI that will launch over top of UberGui to make it easier to choose a value. You'll see the triple dot icon to the right when this is the case. (file and folder parameters use this icon as well, but they simply launch TouchDesigner's built in picker.)

ubergui aux ui

You can take advantage of the tool-tips overlay, if you include a table DAT in the source object, that contains descriptions of each parameter.

ubergui tooltips

This is also where you'd specify special functionality for certain types of parameters in the third and fourth columns.

ubergui override config


Touch Screen support

Touch Screens are supported as well, via a parameter called Input Mode, in the Config page. By default it's set to a mouse control scheme, but upon switching to Touch mode, the mouse is disabled in UG and Touch Screen controls become active.

Scrolling is easy, just drag up and down on the left side of UberGui.

ubergui tooltips

When in Touch mode, you always need to single tap an element before trying to interact with it. This is because our ability to "hover" over a UI element is not possible with Touch Screen mode.

ubergui touch hovering

Using a slider is simple, just tap and drag left to right.

ubergui touch sliders

To reset a parameter tuplet to it's default value(s), highlight a label, then long press to reset. NOTE: You can change the global delay for long press in the config page of UG.

ubergui touch reset fields

To enter field mode, long press any element after highlighting it with a tap.

ubergui touch field entry


Support this work

If you find value in this sort of thing, help me dedicating time to making open source code.

Donate Donate

Comments
  • There is some sort of cooking issue on launch that prevents any interaction.

    There is some sort of cooking issue on launch that prevents any interaction.

    On the multi-touch side there are a few problems. There is some sort of cooking issue on launch that prevents any interaction. Diving into the network fixes it, as does force cooking uberGUI with recurse=True. The multitouch is smooth for the left part of the screen, but the scrollbar works opposite to how one might expect it to.

    bug 
    opened by EnviralDesign 5
  • Scrolling Parameter RFEs

    Scrolling Parameter RFEs

    It would be great if part of the Style page a scroll wheel speed modifier were implemented. While I can traverse all the parameters in 'Heavy' in the Parameters Inspector with a single wheel scoll, it takes me 30 full scrolls to do the same thing in UberGUI, and a public multiplier would be helpful in dialing in a user facing interface and making it feel good

    the two finger scroll actually feels pretty good for flicks on a laptop mouse pad, but two finger scroll doesn't work unless you let up off the pad the hovers freak out a bit, which isn't the expected behavior in a browser... that very well may be a limitation of TD tho

    On a touch screen things break a bit. Increasing the Scroll Bar width makes it fairly navigable from a touch ui, but a two finger multi-touch scroll would be amazing. To that end, the ability to adjust the fill weight between the left and right part of the panel, and set the texts H orientation would be fantastic. Right now most elements can be interacted with via touch screen, but they require a double click on a new one, otherwise the parameter gets stuck on a recently interacted with parameter. This can be fixed by using a regular mouse to engage a new parameter. Obviously touchscreen functionality isn't a priority with this UI, but I figured feedback on how its functioning with one could be helpful.

    Thanks again for releasing this, its a great contribution. Looking forward to spending some more time with it

    enhancement 
    opened by drmbt 5
  • RFE: Handle header type pars

    RFE: Handle header type pars

    I think I only have one RFE remaining. Currently "header type" pars are rendered as editable strings. Imho these should get their own (header like) styling. Or, as a quick fix, those could be just rendered as headers.

    enhancement 
    opened by AchimKern 4
  • New stable lselect_mouse error

    New stable lselect_mouse error

    spamming clicks on the left half of the interface returns some errors in converting string to float from the l_select chop. error looks like dis:

    Traceback (most recent call last): File "/project1/container_UG_V4/chopexec_interact_mouse_lselect", line 11, in onOffToOn File "/project1/container_UG_V4/UG4", line 409, in Interact_LeftClick_Down ValueError: could not convert string to float: '0.97666666666666677OklOSVQsWDowLFk6MDwvdGl0bGU%2BCjxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KPHN0eWxlPgoKOnJvb3QgewogIC0taG92ZXItdHJhbnNpdGlvbi10aW1lOiAwLjFzOwogIC8qLS1wYXJhbWV0ZXItcm93LWhlaWdodDogOyovCn0KCgpodG1sLCBib2R5IHsKICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEzLDEzLDEzKTsKICBtYXJnaW46IDBwdDsKICB1c2VyLXNlbGVjdDogbm9uZTsKfQoKCi5kZWJ1ZyB7CiAgY29sb3I6IHJnYigyNTUsMjU1LDI1NSk7CiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwuNSk7CiAgcG9zaXRpb246IGZpeGVkOwogIHRvcDogMHB0OwogIHBvaW50ZXItZXZlbnRzOiBub25lOwogIHdpZHRoOiAxMDAlOwogIHotaW5kZXg6IDUwOwogIG9wYWNpdHk6IDAuMDsKfQoKCi5ibGFua2l0IHsKICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEzLDEzLDEzKTsKICBwb3NpdGlvbjogZml4ZWQ7CiAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiAxMDAlOwp9CgoKLyogd2lkdGggKi8KOjotd2Via2l0LXNjcm9sbGJhciB7CiAgd2lkdGg6IDEwcHg7CiAgYmFja2dyb3VuZDogcmdiKDEzLDEzLDEzKTsKfQoKLyogSGFuZGxlICovCjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogIGJhY2tncm91bmQ6IHJnYig3Niw3Niw3Nik7Cn0KCgouc3BhY2VyX3NlY3Rpb24gewogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMnB4Owp9Ci5zcGFjZXJfaGVhZGVyIHsKICB3aWR0aDogMTAwJTsKICBoZWlnaHQ6IDJweDsKfQoKCi5oZWFkZXJfY29udGFpbmVyIHsKICBmb250LWZhbWlseTogIkNhbGlicmkiOwogIGZvbnQtc2l6ZTogMTQuMHB0OwogIGZvbnQtd2VpZ2h0OiBib2xkOwogIG1hcmdpbi1ib3R0b206IDJweDsKICBwYWRkaW5nLXJpZ2h0OiA0cHQ7CiAgcGFkZGluZy1sZWZ0OiA0cHQ7CiAgbWFyZ2luLXJpZ2h0OiAycHg7CiAgbWFyZ2luLWxlZnQ6IDJweDsKICBoZWlnaHQ6IDMwcHg7CiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1MywxNTMsMTUzKTsKICBjb2xvcjogcmdiKDI2LDI2LDI2KTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICBsaW5lLWhlaWdodDogMzBweDsKICBib3JkZXItcmFkaXVzOiAzcHg7Cn0KCi53aWRnZXRfY29udGFpbmVyIHsKICBoZWlnaHQ6IDI1cHg7CiAgZGlzcGxheTogZmxleDsKICBtYXJnaW4tcmlnaHQ6IDJweDsKICBtYXJnaW4tbGVmdDogMnB4OwogIG1hcmdpbi1ib3R0b206IDFweDsKfQoKCi53aWRnZXRfbGFiZWwgewogIGZvbnQtZmFtaWx5OiAiVGFob21hIjsKICBmb250LXNpemU6IDkuMHB0OwogIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgY29sb3I6IHJnYigyMTcsMjE3LDIxNyk7CiAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgcGFkZGluZy1yaWdodDogNHB0OwogIHBhZGRpbmctbGVmdDogNHB0OwogIGxpbmUtaGVpZ2h0OiAyNXB4OwogIG1hcmdpbi1yaWdodDogMXB4OwogIGhlaWdodDogMTAwJTsKICB3aWR0aDogNTAuMCU7CiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI2LDI2LDI2KTsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIHRyYW5zaXRpb246IHZhcigtLWhvdmVyLXRyYW5zaXRpb24tdGltZSk7CiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4OwogIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDsKfQoKCgoud2lkZ2V0X3Rvb2x0aXAgewogIGZvbnQtZmFtaWx5OiAiVGFob21hIjsKICBmb250LXNpemU6IDhwdDsKICBjb2xvcjogcmdiKDIwNCwyMDQsMjYpOwogIG9wYWNpdHk6IDA7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIGxpbmUtaGVpZ2h0OiAyNXB4OwogIHdpZHRoOiAxNXB4OwogIHRyYW5zaXRpb246IHZhcigtLWhvdmVyLXRyYW5zaXRpb24tdGltZSk7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHotaW5kZXg6IC0xNTsKfQoKLndpZGdldF9jb250YWluZXI6aG92ZXIgLndpZGdldF90b29sdGlwIHsKICBvcGFjaXR5OiAwOwp9Cgoud2lkZ2V0X3Rvb2x0aXA6aG92ZXIgewogIGZvbnQtc2l6ZTogMTRwdDsKICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNTEsNTEsNTEpOwp9Cgoud2lkZ2V0X2xhYmVsOmhvdmVyIHsKYmFja2dyb3VuZC1jb2xvcjogcmdiKDUxLDUxLDUxKTsKfQoKLndpZGdldF9sYWJlbDphY3RpdmUgewpiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAyLDEwMiwxMDIpOwp9Cgoud2lkZ2V0X2JvZHkgewogIG1hcmdpbjogMHB0OwogIHBhZGRpbmc6IDBwdDsKICBoZWlnaHQ6IDEwMCU7CiAgd2lkdGg6IDUwLjAlOwogIGRpc3BsYXk6IGZsZXg7Cn0KCi53aWRnZXRfaXRlbSB7CiAgd2lkdGg6IDEwMCU7CiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI2LDI2LDI2KTsKICBib3JkZXItd2lkdGg6MHB0OwogIG92ZXJmbG93OiBoaWRkZW47CiAgcG9zaXRpb246cmVsYXRpdmU7CiAgdHJhbnNpdGlvbjogdmFyKC0taG92ZXItdHJhbnNpdGlvbi10aW1lKTsKICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4OwogIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7Cn0KCi53aWRnZXRfSXRlbUNob29zZXIgewogIGZvbnQtZmFtaWx5OiAiVGFob21hIjsKICBmb250LXNpemU6IDkuMHB0OwogIGNvbG9yOiByZ2IoMjE3LDIxNywyMTcpOwogIHRleHQtYWxpZ246IGNlbnRlcjsKICBsaW5lLWhlaWdodDogMjVweDsKICBwYWRkaW5nOiAwcHQ7CiAgaGVpZ2h0OiAxMDAlOwogIGZsZXg6IDAgMCAyNXB4OwogIGJhY2tncm91bmQtY29sb3I6IHJnYigyNiwyNiwyNik7CiAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICBib3JkZXItd2lkdGg6MHB0OwogIGJvcmRlci1zdHlsZTogc29saWQ7CiAgYm9yZGVyLWNvbG9yOiByZ2IoMTUzLDc3LDApOwogIG92ZXJmbG93OiBoaWRkZW47CiAgcG9zaXRpb246cmVsYXRpdmU7CiAgbWFyZ2luLWxlZnQ6IDFwdDsKICBtYXJnaW4tc'

    bug 
    opened by drmbt 4
  • Certain par styles set to None can't be edited directly in interface

    Certain par styles set to None can't be edited directly in interface

    Certain par types that take a string path, such as Op, OBJ, MAT, SOP. DAT, CHOP, Python, TOP. COMP etc. can't be interacted with until something has been assigned manually via the network editor parameter... once a value has been entered there, it can be double click edited as expected, but if the starting value is 'None', no interaction takes effect. This is easily reproduced by monitoring the 'Heavy' example and engaging the UI for such parameters

    bug 
    opened by drmbt 4
  • More touchscreen issues

    More touchscreen issues

    Hey again this behaves much better, but I'm still having touchscreen issues

    ISSUE 1 open your demo file and scroll down to "Numeric special" touch RGB color pick "..." > dont change anything in the popup picker > try to close it by touching outside. If it closes open the color picker again and try to close it ... At some point (rather sooner than later) I get stuck in the opened popup picker and cant close it. If that happens , the only way to close it is to select a new color (or move the mouse)

    ISSUE 2: open "RGB" picker by touching the blue "..." changeit to red touch outside to close color picker

    touch "RGBA" ".." -> color picker opens with the correct color (orange) but if you click in the big square to pick a new orange tone the hue will jump to the hue of the previou(RGB) par (red)

    bug 
    opened by AchimKern 3
  • RFE: Ignore expr mode params  or fully support those

    RFE: Ignore expr mode params or fully support those

    Right now I can edit a param that is in expression mode, but that will put the param into constant mode. But for the end user of the gui this is not transparent, so he might easily break stuff

    Maybe it would be better to (optionally) ignore parameters that are in expression (or export) mode

    Or to fully support editing parameters that are in expression mode, i.e. to not change them to constant mode

    enhancement 
    opened by AchimKern 3
  • TD network navigation trigger ubergui errors

    TD network navigation trigger ubergui errors

    Hey Lucas,

    finally found time to check it out. Great job!

    Small issue here:

    Open the toe file and press "u" key to get out of project 1 then press "Enter" key

    Traceback (most recent call last): File "/project1/container_UG_V4/keyboardin_hotkeys_callbacks", line 23, in onKey File "/project1/container_UG_V4/UG4", line 1396, in Trigger_Enter File "/project1/container_UG_V4/field/field", line 100, in Set AttributeError: 'NoneType' object has no attribute 'val'

    bug 
    opened by AchimKern 3
  • Field editing binded pars

    Field editing binded pars

    Hi Lucas

    I think this might be the same issue as someone else reported. Editing binded parameters via slider/buttons works perfectly, the issue is when you double click to edit a par, you get the value of the "constant mode" in the field

    Open your demo file, load the custom OP example

    drag the Bind slider to e.g: 0.5

    double click the slider/value to edit the value manually

    -> the field will show 0.0 (and NOT 0.5)

    bug 
    opened by AchimKern 2
  • Menu width doesn't take scrollbar width into account

    Menu width doesn't take scrollbar width into account

    Now that the popup menu scrollbar width can be configured, the dropdown menu extends across the width of the parameter if you increase the scrollbar width

    bug 
    opened by AchimKern 2
  • RFE: Allow Bind mode

    RFE: Allow Bind mode

    Hi Lucas

    I appreciate the read-only mode for parameters in expression mode.

    But imho bind mode should NOT be read-only. In my testing it worked perfectly (I was binding to a dependDict holding parameter presets)

    Could you please re-enable parameters in bind mode (or provide a setting which pars modes will be read-only)

    Also, is there a way to set the text colors for expression, read only and export mode? Thanks!

    enhancement 
    opened by AchimKern 2
  • uberGUI doesn't always update read-only parameters reliably

    uberGUI doesn't always update read-only parameters reliably

    I've noticed that uberGUI doesn't always update read-only parameters reliably. I have a base with string parameters being updated by an extension, and while they dependably update at the base level, and if they are not read-only, when read-only is engaged I'm not seeing the feedback updating in the UG string parameter.

    opened by drmbt 0
  • RFE: radio buttons

    RFE: radio buttons

    Hello Lucas, amazing work with UberGui!

    I know the architecture is to make an abstraction layer over the Custom Parameters of COMP's, and that the Radio button option is not available natively in TD Custom Pars, but.. what do you think? is it something we can hope for?

    For what I see, the menu par type is a good candidate, it generates a list of buttons already in UberGui implementation. What would be nice is to have an option to render that list of buttons directly instead of being "inside" the menu

    cheers, Rui

    enhancement 
    opened by ruigato 6
  • Add ability to break or replace par.mode via UberGui.

    Add ability to break or replace par.mode via UberGui.

    right now if a parameter has an expression, or bind, it cannot be switched back to parmode.CONSTANT.

    Have some macro or UI way to trigger a reset to default. maybe shift+right click, or shift+ctrl+rightclick?

    enhancement 
    opened by EnviralDesign 0
Releases(4.1.0)
  • 4.1.0(Apr 26, 2021)

    • Upgraded to be compatible with TouchDesigner 2021.12380.
    • Fixed bug related to TouchDesigner upgrade, causing Touch input to affect the last dragged parameter.
    • Par selection middle mouse drag n drop callback.
    • Fixed color picker error in touchscreen mode.
    • Some enhancements to how drop down menu's are styled.
    • Fixed bug where enter key was causing stray errors and triggering too often.
    • Color picker "..." element's background now takes on the color of the color parameter.
    • Added read only styling to other par modes, like expression, export, and bind. These can not be edited in UberGui for now.
    Source code(tar.gz)
    Source code(zip)
    UberGui_V4_Release.toe(64.91 KB)
    UGV4.tox(50.88 KB)
  • v4.0.1(Feb 7, 2021)

    • Code refactored largely into extensions in anticipation of Touch mode.
    • Touch Screen mode added for users with Touchscreens.
    • Style parameters added for horizontal alignment of text, and UI vertical split.
    • New option for choosing different methods of page filtering. Default is now all custom pages instead of uppercase names only.
    • Added parameters for adjusting scroll rate, and scroll acceleration, making it possible to speed up scrolling or slow it down.
    Source code(tar.gz)
    Source code(zip)
    UGV4.tox(46.27 KB)
  • v4.0.0(Feb 4, 2021)

Owner
LUCAS M MORGAN
Lighting Designer, Touch Designer programmer, LED fanatic
LUCAS M MORGAN
Small Python scripts to take screenshot from a KaiOS/FFOS device and to mirror the screen of your phone.

This version of kaiscr is written by tkinter and can run in windows(use kailive-tk.py). "kailive-tk-speed.py" is speed optimization version. The sourc

openGiraffes Group 2 Mar 02, 2022
This program is written in python. It will help you find a valid solution for a sudoku puzzle.

Sudoku-Solver-Using-Tkinter This program is written in python. It will help you find a valid solution for a sudoku puzzle. Requirements: Python3 IDLE

Ankan Mahapatra 3 Oct 02, 2021
A simple project used Tkinter module to make a seperate window

Project Title This is a program to run a databse where you can store the general information of poeple. This is a very simple project and i have used

Divyansh Bhardwaj 0 Jun 25, 2022
GUI Python Auto text bot.

Bagel Text Bot Auto text bot. Written in Python. Contributing Pull requests are welcome. For major changes, please open an issue first to discuss what

Toby 3 May 14, 2022
Write desktop and web apps in pure Python

Flexx Want to stay up-to-date about (changes to) Flexx? Subscribe to the NEWS issue. Introduction Flexx is a pure Python toolkit for creating graphica

flexxui 3.1k Dec 29, 2022
A simple todo GUI applicaiton

simple_todo_gui A simple todo GUI applicaiton To create an .exe file, run 'Python setup.py build' after installing PyQt5 and cx_Freeze with pip. Then

Dhammike Piyumal 2 Nov 11, 2021
Rich.tui is a TUI (Text User Interface) framework for Python using Rich as a renderer.

rich.tui Rich.tui is a TUI (Text User Interface) framework for Python using Rich as a renderer. The end goal is to be able to rapidly create rich term

Will McGugan 17.1k Jan 04, 2023
GUI Pancakeswap 2 and Uniswap 3 SNIPER BOT 🥇 🏆 🥇

GUI Pancakeswap V2 and Uniswap V3 trading client (and bot) MOST ADVANCE TRADING BOT SUPPORT WINDOWS LINUX MAC (BUY TOKEN ON LAUNCH)

HYDRA 16 Dec 21, 2021
This simple python program can be used to make FontChooser dialog in Tkinter Applications.

tkFontBox This simple python program can be used to make FontChooser dialog in Tkinter Applications. how to use? Copy the tkFontBox.py file into your

Pawan Kumar Prachi 1 Feb 08, 2022
PyEditor - A Simple Text Editor for python

PyEditor work in progress Text Editor for python Installation git clone https://github.com/ArmenG888/PyEditor Install the libraries Linux or mac pip

ArmenG 3 Mar 15, 2022
This was my test project when i started to learn Python Tkinter. Its the simplest interface possible.

Rock-Paper-Scissors-Game- Project Description: This was my test project when i started to learn Python Tkinter. Its the simplest interface possible. R

Hassan Shahzad 2 Jan 17, 2022
This is the new and improved Plex Automatic Pre-roll script with a GUI

Plex-Automatic-Pre-roll-GUI This is the new and improved Plex Automatic Pre-roll script with a GUI! It should be stable but if you find a bug please l

164 Nov 04, 2022
Basic Alarm Clock using Python.

Basic Alarm Clock using Python.

Samyak Jain 2 Feb 10, 2022
Basic calculator using Tkinter GUI

Basic calculator using Tkinter GUI

Rogerio Penchel 17 Jan 09, 2022
A GUI panel to manage multi monitor on i3wm.

Monitor manager Only for I3wm (Just for now) It's about two years that I'm using i3 as my window manager and in my experience this window manager allo

Wire.Nemo 3 Nov 06, 2021
A simple fusee-launcher frontend for macOS

A simple fusee-launcher frontend for macOS (Universal). Supports macOS = 10.9. It has libusb statically linked, so you don't need to install anything

rob 25 Dec 19, 2022
Software com funçoes de A a Z feito no Python

Introdução Iniciante em programação Python, decidi criar um programa com diversas ferramentas de A a Z. Funções Ferramenta de Gerenciamento e Manutenç

João Pedro 1 Jan 26, 2022
A lightweight file-copying interface.

autosort A lightweight file-copying interface. Preview What is autosort? Autosort is a lightweight file-copying interface. It allows you to copy sever

32 Jan 02, 2023
python+PySimpleGUI+pyserial+threading

GUI_pyserial python+PySimpleGUI+pyserial+threading 功能 1.利用PySimpleGUI制作图形用户界面 2.利用threading实现多线程调用pyserial处理串口通信 模块版本 PySimpleGUI 4.46.0 pyserial 3.5

2 Dec 27, 2022
FPKG Maker GUI - A user friendly User Interface for fPKG Tools for PS4

Know Issues being worked on Please place this application on the root of a drive

26 Nov 27, 2022