Examples

Basic Example

Tickmarker exports the TickMarker widget, which places ticks in the center of the widget so that when combined with another widget e.g. a slider it marks intervals. TickMarker supports horizontal and vertical orientation, minor/major ticks and log10 representation.

For example, to create a log slider from 0.1 to 10 starting at 1 with major tick marks at every decade, and minor ticks at every 0.2 decades:

from kivy.uix.slider import Slider from kivy.garden.tickmarker import TickMarker class TickSlider(Slider, TickMarker): pass s = TickSlider(log=True, min_log=.1, max_log=10, value_log=1, ticks_major=1, ticks_minor=5)

Or a linear slider from 10 to 200 starting at 60 with major tick marks at every 50 units from start, and minor ticks at every 10 units

s = TickSlider(min=10, max=200, value=60, ticks_major=50, ticks_minor=5)

To create a log progress bar from 10 to 1000 starting at 500 with major tick marks at every decade, and minor ticks at every 0.1 decades:

from kivy.uix.progressbar import ProgressBar
from kivy.garden.tickmarker import TickMarker
class TickBar(ProgressBar, TickMarker):
padding = NumericProperty(0)
min = NumericProperty(0)
orientation = OptionProperty('horizontal', options=('horizontal'))
s = TickBar(log=True, min_log=10, max_log=1000, value_log=500,
ticks_major=1, ticks_minor=10)

When combining with another widget such as a slider, the widget must have min, max, value, orientation, and padding fields. See the second example above as to how you would do this with a ProgressBar. When logarithmic representation is required you read and write to the numerical fields using min_log, max_log and value_log instead of min, max, and value.