This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!
Project Description

TtkWidget class is the core of the yawTtk package. It loads Tile and override configure function to manage both widget options and style options.

Support this project

16SPHzxaxjCYccnJCRY3RG711oybQj4KZ4

Extend

A yawTtk widget extends TtkWidget and can be configured mostly as a Tkinter widget if its extend option is True. There are two ways to disable this feature :

>>> # for all widgets
>>> customize_all_widgets(False)
>>> # or
>>> # for a single widget on its creation
>>> button = Button(extend = False, text = "Simple button")

Configure

In Tile, widget options and style are separated. yawTtk merges them to simplify and match as possible Tkinter way of coding. Remember that it is only available if extend option is True. configure funcion is called by __init__ and __setattr__ class method so there are 3 different ways to configure widgets.

>>> # configure widget with __init__ function
>>> button = Button(
... style = "custom.Toolbutton",
... anchor = "center",
... font = ("Tahoma", "8", "bold"),
... )
>>> # or with __setattr__ function
>>> button["foreground"] = "steelblue3"
>>> button["background"] = "lightgreen"
>>> # or even with configure function
>>> button.configure(
... command = exit,
... text = "Toolbutton",
... padding = (5, 1, 5, 1)
... )
>>> # pack and see...
>>> button.pack(fill = "x", padx = 5, pady = 5)

In this example, widget style is explicitly defined. If it is not, yawTtk gives one according to widget type and name. Next example shows different possibilities of style determination by yawTtk. Notice that name option is not necessary because of automatic naming in Tkinter.

>>> b1 = Button(extend = False, text = "Button 1", name = "button001")
>>> # style widget is "TButton"
>>> b2 = Button(extend = False, text = "Button 2", name = "button002", style = "custom.TButton")
>>> # style widget is "custom.TButton"
>>> b3 = Button(extend = True, text = "Button 3", name = "button003")
>>> # style widget is "button003.TButton"
>>> b4 = Button(extend = True, text = "Button 4", name = "button004", style = "TButton")
>>> # style widget is "TButton"
  • b1 and b2 can only be configured with ttk::style configure command
  • b3 and b4 can configure themselves with __setattr__ and configure functions
  • b1 and b4 are default button i.e. modifications affect all buttons

Limitations

There are many themes defined in tile (or Tk 8.5). The winnative and xpnative ones do not allow modification for all widget options. Just see the example below :

>>> # other way to configure widget is to give a dictionary...
>>> cnf = dict(
... # relief is not supported in "xpnative" and "winnative" theme
... relief = "solid",
... # options supported by all theme
... anchor = "center",
... font = ("Tahoma", "8", "bold"),
... foreground = "steelblue3",
... background = "lightgreen",
... command = exit,
... text = "Flat button",
... padding = (5, 1, 5, 1)
... )

For each theme fo Tile :

>>> Button(None, cnf).pack(fill = "x", padx = 5, pady = 5)

Windows themes :

Other themes :

Release History

Release History

1.0.3

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
yawTtk-1.0.3-py2.py3-none-any.whl (53.8 kB) Copy SHA256 Checksum SHA256 3.4 Wheel Aug 6, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting