Tukaan is the new framework that aims to replace Tkinter

Overview

Tukaan

Code style: black

Tukaan is the new, pythonic and colorful (like a keel-billed toucan) framework that aims to replace Tkinter. It has everything (on my computer, not at GitHub) that you need to develop cross-platform GUIs.

WIP

Although all the basic widgets and other classes already exist in my local repo, they are not yet ready to push them to GitHub. I only push things to GitHub that work and can be tried, but they are still in progress, so you shouldn’t use it in any project.

The goal of Tukaan

The goal of Tukaan is to be an easy-to-use, powerful and pythonic alternative to Tkinter.

Tkinter is just a wrapper around Tk, that is so thin, that you can see through it, and even has holes on it. If you have ever used Tkinter, you know, it's kinda dumb. There are a lot of things not implemented in Tkinter, you can only access them with Tcl calls. Tukaan has everything you could need, and maybe even more.

In Tcl almost everything is represented as strings, and Tkinter doesn't convert them to Python objects, so you have to do that yourself. If you mess something up, it won't raise a Python exception, but Tcl a error, which you don't know what's wrong even if you know the Tcl language. Tkinter also looks awful by default. You can change this, if you use the the Ttk extensions. But why should you use extensions to make your GUI not look like it came from the 90's?

With Tukaan this is completely different. With it, the app looks native by default on Windows and on Mac OS as well. Unfortunately this isn't possible on Linux, but it uses a better theme than the Tk default.

Simple example

import tukaan

class MyApp(tukaan.App):
    def __init__(self):
        tukaan.App.__init__(self, title="My nice little Tukaan app")

        self.position = "center"

        self.button = tukaan.Button(self, text="Button")
        self.button.callback = lambda: print("ok")

        self.pack_widgets()
	
    def pack_widgets(self):
        self.button.pack()


def main():
    MyApp().run()

if __name__ == "__main__":
    main() 

Some very nice things in tukaan

Get clipboard content

print(tukaan.Clipboard.get())

# or

print(tukaan.Clipboard.content)

When was the user last active on the computer

print("User last active", tukaan.App().user_last_active, "seconds ago.")

Centering a window on the screen

For some reason it doesn't work sometimes

app = tukaan.App()
app.position = "center"

Color conversions

>> (0, 127, 255) print(color.hsv) >>> (210, 100, 100) print(color.cmyk) >>> (100, 50, 0, 0) ">
color = tukaan.Color("#007fff")
print(color.rgb)
>>> (0, 127, 255)
print(color.hsv)
>>> (210, 100, 100)
print(color.cmyk)
>>> (100, 50, 0, 0)

Screen information

screen = tukaan.Screen()
print(screen.width)
>>> 1920
print(screen.height)
>>> 1080
print(screen.dpi)
>>> 72

Credits

Many thing in Tukaan is based on:

Comments
  • packaging: migrate to a setup.cfg build

    packaging: migrate to a setup.cfg build

    TkDND is quite a big dependency which actually needs to be platform specific to reduce the size of the distribution wheels. I think you should move them to libtukaan.

    The other option is you keep them in tukaan, but then to reduce the distribution size, we need to fallback to setup.py based packaging.

    opened by demberto 23
  • change: use properties & descriptors

    change: use properties & descriptors

    Changed many / almost all getter / setter functions to either properties or descriptors. Using descriptors for a library like this will vastly reduce boilerplate.

    This is a BIG change. I might have unknowingly broken some code, since there were a lot of type errors, but I did check for references majority of the times.

    Tbh, the descriptors are placed a little randomly across modules, as I implemented them wherever required. I think there are just too many modules. The number of modules needs to be reduced and the scope of objects (variables / constants / functions / classes / modules) needs to be better indicated by a _ prefix to imply internal code.

    Apart from this, I personally have faced a lot of issues dealing with private variables for caching and public properties for exposing them. It might have been a different case for you but, imo private variables are best avoided wherever possible.

    opened by demberto 10
  • Add Mica effect, titlebar customization

    Add Mica effect, titlebar customization

    Hi!

    Could someone with Windows 11 build 22000 or above test the following two snippets for me?

    I don't have this build, and installing a new Windows build is kinda pain, so I'd be really grateful, if you someone could test them, and give feedback. Thanks!

    You can just download the 2022-02-16 branch, and run this two code to test it.

    Mica

    This code should add a Mica effect to the window, and remove it after 10 seconds.

    import tukaan
    
    app = tukaan.App(title="Test titlebar and window border customization")
    
    app.set_backdrop_effect("mica")
    
    tukaan.Timeout(10, lambda: app.set_backdrop_effect(None)).start()
    
    app.run()
    
    

    Titlebar bg, fg and window border:

    import tukaan
    
    app = tukaan.App(title="Test titlebar and window border customization")
    
    app.Titlebar.bg_color = tukaan.Color("#ffc568")
    app.Titlebar.fg_color = tukaan.Color("#6667ab")
    app.border_color = tukaan.Color("#007fff")
    
    app.run()
    

    I'm not sure, if I implemented the bg, fg and border color functions correctly, and the colors may be something completely else. Here's how they should look: asdf | color --- | --- titlebar should be this color | ffc568 titlebar text should be this color | 6667ab window border should be this color | 007fff

    help wanted 
    opened by rdbende 10
  • Add audio playback/record/manipulation features

    Add audio playback/record/manipulation features

    Audio in Tukaan

    Tukaan uses the awesome Snack Tk extension internally to play, record and manipulate audio. Unfortunately the Snack project is inactive since 2005, so I had to modify it a bit because it used deprecated, and removed ALSA functions. I also removed MP3/MPEG support, because it would require GPL license, and currently OGG/Vorbis and NIST/Sphere codecs aren't included.

    The Snack backend is implemented as a Git submodule, the repo can be found at github.com/tukaan/Snack

    Supported filetypes: Read: aiff, au, csl, sd, smp, snd, wav, and raw binary Write: aiff, au, csl, smp, snd, wav, and raw binary

    Basics

    from tukaan import Time, Timer
    from tukaan.audio import Filter, Sound
    
    sound = Sound()  # Create an empty sound object
    
    # --- OR ---
    
    sound = Sound(Path("/home/rdbende/Music/Elefánt/Kardhal.wav"))  # Load sound from file
    
    sound.play(Time[3:40])  # Play sound, starting at 3:40
    
    sound.convert("mono", sample_rate=16000)  # Convert sound to mono, 16kHz sample rate
    sound.save("./music.au")  # Save sound in a different format
    
    with Sound() as s:  # Deletes sound when __exit__ing
        s.play(block=True)
    

    Record audio

    sound = Sound()
    
    with sound.record():  # Stops the recording when __exit__ing
        Timer.wait(10)  # Wait for 10 seconds until it is recording
    
    # --- OR ---
    
    sound.start_recording(input="plughw:1")  # Start recording (without context) on the specified input device
    

    Do things with two sounds

    sound_1 = Sound()
    sound_2 = Sound()
    
    sound_1 += sound_2  # Concatenate sound
    
    sound_1 &= sound_2  # Mix sounds
    
    sound_1.insert(Time[2:34], sound_2)  # Insert a sound at 2:34
    

    Slicing a sound

    sound = Sound()
    
    sound[Time[1:23]:Time[4:56]]
    # Returns a SoundSection object (NOT a Sound object with that sound range!)
    # So you can modify the specified section of the original sound object (apply a filter, cut, crop, play and save)
    
    
    sound[Time[1:23]:Time[4:56]].detached
    # Returns a stand-alone Sound object containing the specified range from the original sound object
    
    sound[Time[1:23]:Time[4:56]]  # From 1:23 to 4:56
    sound[88200:Time[4:56]]  # From sample #88200 to to 4:56
    sound[Time[1:23]:...]  # From 1:23 to end of sound
    sound[...:Time[4:56]]  # From start of sound to 4:56
    # I know, you got it ;)
    

    Filters

    sound = Sound()
    
    # Apply filter to the sound
    sound @= Filter.Echo()
    
    # Chaining filters
    sound @= Filter.FadeIn() & Filter.Echo()  # Returns a ComposeFilter
    
    # Apply filter only to the playback
    with Filter.Reverb():
        sound.play()
    

    Available filters: Amplifier, Echo, FadeIn, FadeOut, Formant, Generator, IIR, MixChannels and Reverb

    Time

    Time[17:42:38]  # hours:minutes:seconds
    

    I created a time object too, to easily specify positions in the Sound. I could use datetime.time, but I don't like how it works.

    datetime.time.fromisoformat("01:23:45")
    

    You need separate method to be able to write a time as 1:23:45, and you need to use a string, so I just don't like it. I wanted to be able to write a time as Time(1:23:45). Of course, this is invalid syntax, but you can write Time[1:23:45] which will be interpreted as a slice. Unfortunately I can't make a Date object like this, because Date(2022/3/12) will be interpreted as a division anyways, so 🌻

    # These 3 are all the same
    
    time = tukaan.Time[1:23:45]
    
    time = tukaan.Time(1, 23, 45)
    
    time = tukaan.Time(hours=1, minutes=23, seconds=45)
    
    opened by rdbende 4
  • The first example in the readme fails with

    The first example in the readme fails with "TypeError: grid() got an unexpected keyword argument 'column'"

    The problem is in the following line:

    self.button.layout.grid(row=0, column=0, margin=(1, 2, 3, 4))
    

    There is no column parameter in the Grid.grid method, there is col instead.

    But I wonder, isn't it better to use full names like "column" or "columnspan"?

    opened by insolor 4
  • tukaan.exceptions.TclError: Serif: Unsupported platform windows-x64

    tukaan.exceptions.TclError: Serif: Unsupported platform windows-x64

    I cant run any Tukaan code on windows? Help

    import tukaan
    
    # Create window
    app = tukaan.App("Test TabView widget")
    
    # Create tabview
    tabview = tukaan.TabView(app)
    tabview.grid()
    
    # Create tabs
    tab_1 = tabview.Tab("Tab 1")
    tab_2 = tabview.Tab("Tab 2")
    
    # Add tab contents
    tukaan.Button(tab_1, "Button in tab 1").grid()  # You can display it inline, but then you can't access the object later
    tukaan.Button(tab_2, "Button in tab 2").grid()
    
    app.run()
    
    
    opened by PyHubs 2
  • Allow wildcard imports? 🤔

    Allow wildcard imports? 🤔

    When I create an app with tkinter I normally will start the file with from tkinter import * so it gets rid of the hassle of importing labels and buttons and whatnot. We need to make that compatible and work with Tukaan. Great job on the release by the way!

    further info 
    opened by Moosems 2
  • `tukaan.App` is crazy inefficient

    `tukaan.App` is crazy inefficient

    https://github.com/tukaan/tukaan/blob/fcf7ff97fe14da80d7f0d8b71e74c28d839e24f6/tukaan/app.py#L56-L70

    $ cat test.py
    import tukaan, tkinter, timeit
    
    
    def asdf():
        _ = tukaan.App()
        _.quit()
    
    
    def qwer():
        _ = tkinter.Tk()
        _.quit()
    
    
    print(timeit.timeit(asdf, number=100))
    print(timeit.timeit(qwer, number=100))
    
    $ python3 test.py
    can't invoke "event" command: application has been destroyed
        while executing
    "event generate $w <<ThemeChanged>>"
        (procedure "ttk::ThemeChanged" line 6)
        invoked from within
    "ttk::ThemeChanged"
    [...] * 99
    10.320173018000037  # tukaan
    2.983373939999933   # tkinter
    

    without those lines, tukaan is only between 2.9 and 3.3 seconds

    Times

    • with tukaan I never got below 2.9 (commented out those lines)
    • with tkinter I never got below 2.7
    • (with teek I never got below 3.3)
    opened by rdbende 2
  • AttributeError: partially initialized module 'tukaan' has no attribute 'App' (most likely due to a circular import)

    AttributeError: partially initialized module 'tukaan' has no attribute 'App' (most likely due to a circular import)

    I just follow the example given in ReadMeto try this module at the first time.

    import tukaan
    
    app = tukaan.App("My first Tukaan app")
    
    app.run()
    

    Then I get this error.

    
    (env) D:\Desktop\coding\sandbox>d:/Desktop/coding/discordpy/env/Scripts/python.exe d:/Desktop/coding/sandbox/tukaan.py
    Traceback (most recent call last):
      File "d:\Desktop\coding\sandbox\tukaan.py", line 1, in <module>
        import tukaan
      File "d:\Desktop\coding\sandbox\tukaan.py", line 3, in <module>
        app = tukaan.App("My first Tukaan app")
    AttributeError: partially initialized module 'tukaan' has no attribute 'App' (most likely due to a circular import)
    

    I am new to this module and I have no idea about why would this happens. Sorry for my incoveniences causes.

    opened by lmjaedentai 1
  • Add Windows blur

    Add Windows blur

    New feature to blur the window background on Windows.

    This API is kinda broken in Windows itself, and Microsoft hasn't documented it anywhere.

    Some documentation

    w.enable_bg_blur(tint, tint_opacity, effect)

    arg | type | description | default -- | -- | -- | -- tint | tukaan.Color | Color used to color the background. If None, current window bg color is used. | Current window bg tint_opacity | float | How much to color the background, on a range between 0 and 1. 0 = no color (transparent), 1 = only color (opaque) | 0.2 effect | tukaan.DwmBlurEffect | Sets what effect to use 👇 | DwmBlurEffect.BLUR (blur + tint with opacity)

    DwmBlurEffect (it's an enum) attributes
    
    DwmBlurEffect.DISABLED           -> no effect
    DwmBlurEffect.OPAQUE_COLOR       -> tint only
    DwmBlurEffect.TRANSPARENT_COLOR  -> tint with opacity
    DwmBlurEffect.BLUR               -> blur + tint with opacity
    DwmBlurEffect.ACRYLIC            -> acrylic blur + tint with opacity
    

    w.disable_bg_blur()

    Remove blur effect.

    Example

    import tukaan
    
    with tukaan.App(title="Nice little blur") as app:
        app.enable_bg_blur(tint=tukaan.Color("#6667ab"), tint_opacity=0.4)
        tukaan.Timeout(3, app.disable_bg_blur).start()
    

    Small hack (not really a hack by now)

    How to make acrylic effect?

    For acrylic effect you can use the effect argument, and set it to tukaan.DwmBlurEffect.ACRYLIC. This acrylic effect is available since Windows 10 1803, but it's incredibly laggy on all Windows 10 systems. Works well on Windows 11 though.

    opened by rdbende 1
  • Font management

    Font management

    I have no better idea than what teek does.

    Usually you don't need a named, mutable font object, just an object to specify the widget font, so a tcl namedfont is a total waste of memory. On the other hand it isn't good to have multiple font classes to different tasks.

    opened by rdbende 1
  • Add `Canvas` and `OpenGLCanvas` widgets

    Add `Canvas` and `OpenGLCanvas` widgets

    TODO:

    • Features of the traditional canvas widget: https://www.tcl.tk/man/tcl8.6/TkCmd/canvas.html

    • Features of the TkPath canvas widget https://github.com/avarga/tkpath/blob/master/doc/readme.adoc

    • OpenGL rendering

      • [ ] OpenGlCanvas class
      • [ ] moderngl or pyopengl? Moderngl is faster and more pythonic, but then we have to implement every platform specific stuff manually (context creation, makecurrent and swapbuffer)
    • Implement new dynamic theming engine using tkp::surface

    TODO in TkPath:

    • [ ] Add to libtukaan. Currently I have only a local .so
    • [ ] Some commands cause segfaults randomly. I've put some TODO comments to them
    • [ ] Finish partially or not implemented features

    Done (at least partially):

    These things need to be tested and possibly bugfixed

    • Canvas items
      • [x] Line (connects two points)
      • [x] Vector (has a length and a angle) See comment about these two in items.py
      • [x] Polygonal line
      • [x] Rectangle
      • [x] Square (rectangle subclass)
      • [x] Ellipse
      • [x] Circle (ellipse subclass)
      • [x] Polygon
      • [x] Text
      • [x] Image
      • [x] Path
      • [x] Item group
    • Utility classes
      • [x] Arrowheads
      • [x] Stroke patterns
      • [x] Transformations
      • [x] Pen (to draw object stroke)
      • [x] Brush (to draw object fill)
    • [x] TkPath works on Linux
    opened by rdbende 3
  • `LabeledView` widget

    `LabeledView` widget

    a.k.a labelframe. It could be really similar to the Frame (probably they should even be in the same file), but with a title attribute (a TextProp from _props.py. It should also inherit Frame.

    enhancement good first issue widget 
    opened by rdbende 0
  • `ButtonGroup` widget

    `ButtonGroup` widget

    A group of buttons, similar to RadioGroup. The button labels and callbacks could be specified in a dict, like items={"Text": do_something}.

    The leftmost button should have the Left.TButton style, the rightmost Right.TButton, and all the others Middle.TButton (similar stuff when the orientation is vertical), this way it's possible to do, that only the outer buttons have round corners. (I think my forest theme has this feature, but it might be only in one of my local branches).

    enhancement good first issue widget 
    opened by rdbende 0
  • High DPI support

    High DPI support

    • [ ] High DPI awareness High DPI awareness should be enabled on Windows by default
    • [ ] Scaling
      • [ ] Implement UI scaling
      • [ ] Support SVG based themes
      • [ ] Create SVG based sun valley theme
    good first issue 
    opened by rdbende 2
  • Accessibility

    Accessibility

    • [ ] Screen reader support I'm not sure... https://sourceforge.net/p/tcl/mailman/tcl-core/thread/8c01c04a-7c44-89a6-e2b4-90e919e37f63%40codebykevin.com/#msg36955189
    opened by rdbende 0
Releases(v0.2.0.retrigger)
  • v0.2.0.retrigger(Dec 22, 2022)

  • v0.2.0(Dec 22, 2022)

    Lots of breaking changes.

    What's Changed

    • change: use properties & descriptors by @demberto in https://github.com/tukaan/tukaan/pull/104
    • cleanup by @rdbende in https://github.com/tukaan/tukaan/pull/105
    • Bit of refactor on window stuff by @rdbende in https://github.com/tukaan/tukaan/pull/106
    • Add theming by @rdbende in https://github.com/tukaan/tukaan/pull/108
    • Fix a lotta bugs, add some tests by @rdbende in https://github.com/tukaan/tukaan/pull/110
    • Add filedialogs by @rdbende in https://github.com/tukaan/tukaan/pull/89
    • Check non-pip dependencies in setup.py by @rdbende in https://github.com/tukaan/tukaan/pull/117

    New Contributors

    • @demberto made their first contribution in https://github.com/tukaan/tukaan/pull/104

    Full Changelog: https://github.com/tukaan/tukaan/compare/v0.1.3...v0.2.0

    Source code(tar.gz)
    Source code(zip)
  • v0.1.3(Aug 30, 2022)

    What's Changed

    • Improved tooltips
    • Built-in dependency troubleshooting stuff
    • Update font file stuff and move to libtukaan by @rdbende in https://github.com/tukaan/tukaan/pull/100

    Full Changelog: https://github.com/tukaan/tukaan/compare/v0.1.1...v0.1.2

    Source code(tar.gz)
    Source code(zip)
  • v0.1.2(Aug 30, 2022)

    What's Changed

    • Improved tooltips
    • Built-in dependency troubleshooting stuff
    • Update font file stuff and move to libtukaan by @rdbende in https://github.com/tukaan/tukaan/pull/100

    Full Changelog: https://github.com/tukaan/tukaan/compare/v0.1.1...v0.1.2

    Source code(tar.gz)
    Source code(zip)
  • v0.1.1(Jul 3, 2022)

    What's Changed

    • Add ToolTip class by @Moosems in https://github.com/tukaan/tukaan/pull/80
    • Update Serif to work on macOS in 5ce336e

    New Contributors

    • @Moosems made their first contribution in https://github.com/tukaan/tukaan/pull/80 🎉

    Full Changelog: https://github.com/tukaan/tukaan/compare/v0.1.0...v0.1.1

    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Jul 2, 2022)

    !! Not backwards-compatible !!

    What's Changed

    • Rewrite quasi everything by @rdbende in https://github.com/tukaan/tukaan/pull/82

    Full Changelog: https://github.com/tukaan/tukaan/compare/v0.0.1.dev1...v0.1.0

    * There's no multiline textbox widget at the moment, however the Entry widget was renamed to TextBox, this might be confusing 😕 The multiline text widget will return, but in a revised form, at least until it is merged into the Tcl/Tk core

    Source code(tar.gz)
    Source code(zip)
  • v0.0.1.dev1(Jun 5, 2022)

  • v0.0.1.dev0(Apr 22, 2022)

    This is the first release of Tukaan! ✨🥳 Tukaan website: https://tukaan.github.io Pypi project link: https://pypi.org/project/tukaan

    Feedback is welcome!

    Source code(tar.gz)
    Source code(zip)
Owner
Tukaan
Tukaan is the new framework that aims to replace Tkinter
Tukaan
Declarative User Interfaces for Python

Welcome to Enaml Enaml is a programming language and framework for creating professional-quality user interfaces with minimal effort. What you get A d

1.4k Jan 07, 2023
The Python-Weather-App is a service that provides weather data

The Python-Weather-App is a service that provides weather data, including current weather data to the developers of web services and mobile applications.

Sayed Tabish 1 Dec 13, 2021
Useful PDF-related productivity tool.

Luftmensch 1.4.7 (Español) | 1.4.3 (English) Version 1.4.7 (Español) released in October 2021. Version 1.4.3 (English) released in September 2021. 🏮

8 Dec 29, 2022
A desktop application developed in Python with PyQt5 to predict demand and help monitor and schedule brewing processes for Barnaby's Brewhouse.

brewhouse-management A desktop application developed in Python with PyQt5 to predict demand and help monitor and schedule brewing processes for Barnab

Isaac Cheng 2 Jul 09, 2022
Quebra cabeça - Utilizando biblioteca do python: PyQt5

Puzzle 3x3 PyQt5 - Windows Quebra cabeça - Utilizando biblioteca do python: PyQt5 Para testar este quebra cabeça na sua maquina, primeiramente faça o

Matheus Marsal 1 Dec 21, 2021
GUI to enable user selection of measurement and station in kHTConnector module.

kHTGui GUI to enable user selection of measurement and station in kHTConnector module. Helper tool for PowerBI users If you're planning to import data

kk 1 Jan 26, 2022
A tf publisher gui tool for ROS, which publish /tf_static message. The software is based on PyQt5.

tf_publisher_gui for ROS Introduction How to use cd catkin_ws/src git clone https://github.com/yinwu33/tf_publisher_gui.git cd catkin_ws catkin_make s

yinwu33 7 Dec 28, 2022
An offline python frontend for the QuadVisions Colab Notebook using tkinter.

Visions GUI An offline python frontend for the QuadVisions Colab Notebook using tkinter. It offers basic options and interactively displays the genera

7 Feb 15, 2022
AutoKey, a desktop automation utility for Linux and X11.

AutoKey Contents About Installation Zero-installation Method Documentation Support Bug reports and Pull Requests Changelog License About AutoKey, a de

2.5k Dec 31, 2022
A simple one-line quick entry GUI for your Obsidian daily notes in markdown format.

Quick-note-entry-for-Obsidian A simple one-line quick entry GUI for your Obsidian daily notes in markdown format. Log your day quickly with this simpl

Adrian Papineau 22 Oct 04, 2022
Win32mica: a simple module to add the Mica effect on legacy python windows.

Win32mica (aka PyMica): A simple module to add the Mica effect on legacy python windows The aim of this project is to apply the Mica effect on python

Martí Climent 40 Dec 13, 2022
A Virtual Desktop Assistant Written in Python

DesktopAssitant A Virtual Desktop Assistant Written in Python. It's generally a basic virtual assistant The basic purpose of this is to make work easi

Technerd brainiac 609 Jan 07, 2023
Tukaan is the new framework that aims to replace Tkinter

Tukaan is the new, pythonic and colorful (like a keel-billed toucan) framework that aims to replace Tkinter. It has everything (on my computer, not at GitHub) that you need to develop cross-platform

Tukaan 101 Jan 08, 2023
🧮A simple calculator written in python allows you to make simple calculations, write charts, calculate the dates, and exchange currency.

Calculator 🖩 A simple calculator written in python allows you to make simple calculations, write charts, calculate the dates, and exchange currency.

Jan Kupczyk 1 Jan 15, 2022
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
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
A Minimalistic Backup GUI for your Windows, Mac or Linux

BlobBackup is a minimalistic backup utility for your Windows, Mac or Linux computer. With an excellent engine, extensive storage support, and an easy

283 Nov 30, 2022
GUI for Volatility forensics tool written in PyQT5

Volatility GUI This is a GUI for Volatility forensics tool written in PyQT5 Prerequisites: 1- Installed version of Volatility. 2- Install PyQT5. sudo

Hamza Megahed 52 Jun 18, 2022
AppQuickLauncher is a tool that can quickly launch apps by clicking the app tray icon.

AppQuickLauncher AppQuickLauncher is a tool that can quickly launch apps by clicking the app tray icon. On Windows 7 or Windows 10, we can add a folde

yin kaisheng 2 Sep 11, 2022
TkArt - A repository created to explore geometry and art creation using TkInter

tkArt A repository created to explore geometry and art creation using TkInter, a

Jayant Sogikar 18 Oct 01, 2022