Source code for ttkwidgets.font.sizedropdown

"""
Author: RedFantom
License: GNU GPLv3
Source: This repository
"""
# Based on an idea by Nelson Brochado (https://www.github.com/nbro/tkinter-kit)
try:
    import Tkinter as tk
    import ttk
    import tkFont as font
except ImportError:
    import tkinter as tk
    from tkinter import ttk
    from tkinter import font
from ttkwidgets.autocomplete import AutocompleteCombobox


[docs]class FontSizeDropdown(AutocompleteCombobox): """ A dropdown with default font sizes """
[docs] def __init__(self, master=None, callback=None, **kwargs): """ :param master: master widget :type master: widget :param callback: callback on click with single argument: `int` size :type callback: function :param kwargs: keyword arguments passed on to the :class:`~ttkwidgets.autocomplete.AutocompleteCombobox` initializer """ int_values = [8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72] values = [str(value) for value in int_values] AutocompleteCombobox.__init__(self, master, completevalues=values, **kwargs) self.bind("<<ComboboxSelected>>", self._on_click) self.__callback = callback self.insert(0, "12")
def _on_click(self, event): """ Function bound to event of selection in the Combobox, calls callback if callable :param event: Tkinter event """ if callable(self.__callback): self.__callback(self.selection) @property def selection(self): """ Selection property. :return: None if no value is selected and size if selected. :rtype: None or int """ if self.get() is "": return None else: return int(self.get())