# ------------------------------------------------------------------
|
# Copyright (c) 2020 PyInstaller Development Team.
|
#
|
# This file is distributed under the terms of the GNU General Public
|
# License (version 2.0 or later).
|
#
|
# The full license is available in LICENSE.GPL.txt, distributed with
|
# this software.
|
#
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ------------------------------------------------------------------
|
"""
|
Hook for use with the ttkthemes package
|
|
ttkthemes depends on a large set of image and Tcl-code files contained
|
within its package directory. These are not imported, and thus this hook
|
is required so they are copied.
|
|
The file structure of the ttkthemes package folder is:
|
ttkthemes
|
├───advanced
|
| └───*.tcl
|
├───themes
|
| ├───theme1
|
| | ├───theme1
|
| | | └───*.gif
|
| | └───theme1.tcl
|
| ├───theme2
|
| ├───...
|
| └───pkgIndex.tcl
|
├───png
|
└───gif
|
|
The ``themes`` directory contains themes which only have a universal
|
image version (either base64 encoded in the theme files or GIF), while
|
``png`` and ``gif`` contain the PNG and GIF versions of the themes which
|
support both respectively.
|
|
All of this must be copied, as the package expects all the data to be
|
present and only checks what themes to load at runtime.
|
|
Tested hook on Linux (Ubuntu 18.04, Python 3.6 minimal venv) and on
|
Windows 7 (Python 3.7, minimal system-wide installation).
|
|
>>> from tkinter import ttk
|
>>> from ttkthemes import ThemedTk
|
>>>
|
>>>
|
>>> if __name__ == '__main__':
|
>>> window = ThemedTk(theme="plastik")
|
>>> ttk.Button(window, text="Quit", command=window.destroy).pack()
|
>>> window.mainloop()
|
"""
|
from PyInstaller.utils.hooks import collect_data_files
|
|
|
datas = collect_data_files("ttkthemes")
|