Skip to content

WM to create a custom title bar for Tkinter GUI on Windows 10

License

Notifications You must be signed in to change notification settings

jose-matheus-dev/WM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WM - 574d

A Window Manager for Tkinter On Windows 10

WM.mp4

How to install

pip install 574d

How to test

from WM import TK

...

if __name__ == '__main__':
    Tk = TK()
    Tk.mainloop()

I developed a code pattern based on the Sword Art Online (SAO) for Tkinter

For Example:

System Call Generate Button Element <Object-ID> Discharge !

Discharge is only a SAO reference.

./WM/core.py

class Call(TkData, INHERIT):  # Object-IDs are here.
    ...
    szTitle, szWindowClass = 'WM', 'WM'
    ...

class System(Call):  # class TK(System, Call.Tk): 
    Call = Call  # System.Call
    ...

./WM/views.py

class Element(E.Widget, E.PhotoImage, System, Call):  # type: ignore
    def __new__(cls, name: str = '', *_: E.Any, generic: bool = False, **__: E.Any):
        E = GENERATE.__dict__[name](*_, **__)
        if generic:
            del E._[-1]
        return E


class Generate(System, Call):
    def __init__(self):
        super(System, self).__init__()  # info when called
        ...
        # with Element Constructor
        Element('Frame', self.TK).grid(0, 0, 'nsew', padx=1, pady=1)({0: (1, 1), 1: (0, 1), 2: (1, 0)}).grid_remove()
        self.W['F'][-1].grid()
        # another way to do the same
        my_frame = ttk.Frame(self.TK)
        my_frame.grid(row=0, column=0, sticky='nsew', padx=1, pady=1)
        my_frame.grid_rowconfigure(0, weight=1)
        my_frame.grid_rowconfigure(2, weight=1)
        my_frame.grid_columnconfigure(0, weight=1)
        my_frame.grid_columnconfigure(1, weight=1)
        my_frame.grid_remove()
        my_frame.grid()