All Projects → Aboghazala → AwesomeTkinter

Aboghazala / AwesomeTkinter

Licence: MIT license
Pretty tkinter widgets

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to AwesomeTkinter

numbars
number visualization with bars, like progressbar
Stars: ✭ 37 (-42.19%)
Mutual labels:  progressbar
python tk adb
安卓性能测试工具
Stars: ✭ 64 (+0%)
Mutual labels:  tkinter
Modern-UI-Components-for-VBA
A helper dll for VBA users to design modern UI components. No install required!
Stars: ✭ 139 (+117.19%)
Mutual labels:  progressbar
fatx-tools
Data recovery tools for FATX drives (XBOX and XBOX 360).
Stars: ✭ 51 (-20.31%)
Mutual labels:  tkinter
Android-Dialog
Android Dialog(BaseDialog、AlertDialog、ProgressDialog、SuccessDdialog、ErrorDialog、BottomDialog)
Stars: ✭ 36 (-43.75%)
Mutual labels:  progressbar
Network-Automation
Cisco ACI, Firepower, Meraki, NETCONF, and SQL Python Programs
Stars: ✭ 47 (-26.56%)
Mutual labels:  tkinter
Barcode-generator
Desktop app to generate EAN-13, EAN-8 and EAN-5 barcodes (other types are coming soon) automatically and save them as PDF or PNG, JPEG and GIF image files with several sizes
Stars: ✭ 48 (-25%)
Mutual labels:  tkinter
Object-Detection-using-LiDAR
This repo detect objects automatically for LiDAR data
Stars: ✭ 38 (-40.62%)
Mutual labels:  tkinter
FillProgressLayout
A simple and flexible Fillable Progress Layout written in Kotlin
Stars: ✭ 77 (+20.31%)
Mutual labels:  progressbar
react-sweet-progress
A way to quickly add a progress bar to react app 🌈
Stars: ✭ 250 (+290.63%)
Mutual labels:  progressbar
programminginpython.com
This repo consists code of all the programs discussed at programminginpython.com website
Stars: ✭ 60 (-6.25%)
Mutual labels:  tkinter
Formation
Tools for building gorgeous graphical user interfaces in tkinter
Stars: ✭ 88 (+37.5%)
Mutual labels:  tkinter
Examples Qt
Shows how to use Qt widgets only by programming code (c++17).
Stars: ✭ 38 (-40.62%)
Mutual labels:  progressbar
LinearProgressView
A simple linear progress view for iOS
Stars: ✭ 103 (+60.94%)
Mutual labels:  progressbar
goopylib
A simple-yet-powerful 2D graphics framework built on top of Tkinter capable of creating good-looking & modern GUIs, games, and simple animations.
Stars: ✭ 19 (-70.31%)
Mutual labels:  tkinter
Python-Course
🐍 This is the most complete course in Python, completely practical and all the lessons are explained with examples, so that they can be easily understood. 🍫
Stars: ✭ 18 (-71.87%)
Mutual labels:  tkinter
python3-concurrency
Python3爬虫系列的理论验证,首先研究I/O模型,分别用Python实现了blocking I/O、nonblocking I/O、I/O multiplexing各模型下的TCP服务端和客户端。然后,研究同步I/O操作(依序下载、多进程并发、多线程并发)和异步I/O(asyncio)之间的效率差别
Stars: ✭ 49 (-23.44%)
Mutual labels:  progressbar
spotify-downloader-music-player
Download youtube songs in mp3 format and plays them
Stars: ✭ 31 (-51.56%)
Mutual labels:  tkinter
ankimaker
Automatically generates Anki decks from many sources
Stars: ✭ 43 (-32.81%)
Mutual labels:  tkinter
TKinterDesigner
TKinterDesigner is a tool software to develop the Python User Interface for Python programmer.
Stars: ✭ 663 (+935.94%)
Mutual labels:  tkinter

AwesomeTkinter offers some pretty tkinter widgets
These widgets are just a tkinter widgets with custom styles and images.

Downloads

Homepage: https://github.com/Aboghazala/AwesomeTkinter

progressbar

More Screenshots

current available widgets:

  • radial progressbar (flat or 3d).
  • segment progressbar.
  • scrollable frames.
  • 3d buttons,
  • 3d frames.
  • Scrollable text widget
  • radiobutton with better indicator/check mark quality.
  • simple scrollbar "without arrow heads"
  • tooltip
  • right click menu
  • auto wrapping label
  • auto fit label
  • alternative filechooser, and folderchooser for linux using zenity or kdialog if installed on target system
  • date picker window

new widgets are coming soon

bidi support:

tkinter has no bidi support for RTL languages
Linux: Arabic words shown reversed and not joined
Windows: bidi support is provided by Windows bidi Engine, but it is not efficient enough, espicially when writing arabic into "Entry" widget

This Library help solving these problems in Linux and windows, see example below
bidi_screenshot

import tkinter as tk
from awesometkinter.bidirender import add_bidi_support, render_text
root = tk.Tk()

text = 'السلام عليكم'

# text display incorrectly on linux without bidi support
dummyvar = tk.StringVar()
dummyvar.set(text)
tk.Label(root, textvariable=dummyvar, font='any 20').pack()

# uncomment below to set a rendered text to first label
# dummyvar.set(render_text(text))

entry = tk.Entry(root, font='any 20', justify='right')
entry.pack()

lbl = tk.Label(root, font='any 20')
lbl.pack()

# adding bidi support for widgets
add_bidi_support(lbl)
add_bidi_support(entry)

# now there is a new set() and get() methods to set and get text on a widget
entry.set(text)
lbl.set('هذا كتاب adventure شيق')

root.mainloop()

Applications examples that uses AwesomeTkinter:

FireDM

Installation:

python pip install awesometkinter on windows
python3 pip install awesometkinter on linux

for quick test:

import awesometkinter as atk
atk.main()

or from terminal:

python3 -m awesometkinter
or just
awesometkinter

this will display a test window

Requirements:

  • minimum python version 3.6
  • tkinter
  • pillow >= 6.0.0
  • python-bidi (for linux)

Limitations:

  • some widgets don't work well with all tkinter themes, it is recommended to set tkinter theme to 'default', 'alt', or 'classic' for things to work fine, so after creating your root you should change theme like example below

Example:

import tkinter as tk
from tkinter import ttk
import awesometkinter as atk

# our root
root = tk.Tk()
root.config(background=atk.DEFAULT_COLOR)

# it is recommended to select tkinter theme required for things to be right on windows,
# 'alt', 'default', or 'classic' work fine on windows
s = ttk.Style()
s.theme_use('default')

# 3d frame
f1 = atk.Frame3d(root)
f1.pack(side='left', expand=True, fill='both', padx=3, pady=3)

# 3d progressbar
bar = atk.RadialProgressbar3d(f1, fg='cyan', size=120)
bar.pack(padx=20, pady=20)
bar.start()

# 3d button
atk.Button3d(f1, text='3D Button').pack(pady=10)

f2 = atk.Frame3d(root)
f2.pack(side='left', expand=True, fill='both', padx=3, pady=3)

# flat radial progressbar
bar = atk.RadialProgressbar(f2, fg='green')
bar.pack(padx=30, pady=30)
bar.start()

atk.Button3d(f2, text='Button2').pack(pady=10)

root.mainloop()

ToolTip

you can enable tooltip for tkinter widgets on mouse hover, signature and arguments like below

class ToolTip:
    def __init__(self, widget, text, waittime=500, xoffset=10, yoffset=10, **kwargs):
        """
        tooltip class

        Args:
            widget: any tkinter widget
            text: tooltip text
            waittime: time in milliseconds to wait before showing tooltip
            xoffset(int): x - offset (pixels) of tooltip box from mouse pointer 
            yoffset(int): y - offset (pixels) of tooltip box from mouse pointer 
            kwargs: parameters to be passed to tooltip label, e.g: , background='red', foreground='blue', etc

        """

Tooltip Example:

import tkinter as tk
import awesometkinter as atk

root = tk.Tk()
btn = tk.Button(root, text="Hello", command=root.destroy)
btn.pack()
lbl = tk.Label(root, text='my label')
lbl.pack()
btn.tp = tooltip(btn, "Hello world")
lbl.tp = tooltip(lbl, "Hello world")

# we can modify any property thru the widget.tooltip reference
btn.tp.waittime = 100
btn.tp.text = 'new text'

# Also we can dynamically change tooltip as follows:
lbl.counter = 0

def foo():
    # change tooltip every second to mimic progress
    lbl.counter = lbl.counter + 1 if lbl.counter < 100 else 0
    lbl.tp.update_tooltip('Progress: ' + str(lbl.counter) + '%')  # or use lbl.tp.text='some text'
    root.after(1000, foo)

foo()

root.mainloop()

also, you can use a lot of useful functions that manipulate images, e.g. to create a tkinter PhotoImage from a file but want to change its size and color:

img = atk.create_image(fp='path to my image file', color='red', size=(150, 100))

Demos:

https://github.com/Aboghazala/AwesomeTkinter/tree/master/demos


Author:

Mahmoud Elshahat
2020-2021

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].