annotate Lib/lib-tk/tkFont.py @ 27998:e27f58a50737 legacy-trunk

SF bug #690377: Dud footnote reference in distutils docs
author Raymond Hettinger <python@rcn.com>
date Fri, 21 Feb 2003 02:47:09 +0000
parents eee67a84e5fa
children 90c77b8af1a4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8960
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
1 #
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
2 # Tkinter
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
3 # $Id$
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
4 #
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
5 # font wrapper
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
6 #
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
7 # written by Fredrik Lundh <fredrik@pythonware.com>, February 1998
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
8 #
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
9 # FIXME: should add 'displayof' option where relevant (actual, families,
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
10 # measure, and metrics)
15308
847ae40074d4 Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents: 8960
diff changeset
11 #
8960
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
12 # Copyright (c) Secret Labs AB 1998.
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
13 #
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
14 # info@pythonware.com
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
15 # http://www.pythonware.com
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
16 #
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
17
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
18 __version__ = "0.9"
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
19
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
20 import Tkinter
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
21
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
22 # weight/slant
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
23 NORMAL = "normal"
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
24 BOLD = "bold"
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
25 ITALIC = "italic"
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
26
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
27 class Font:
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
28
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
29 """Represents a named font.
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
30
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
31 Constructor options are:
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
32
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
33 font -- font specifier (name, system font, or (family, size, style)-tuple)
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
34
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
35 or any combination of
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
36
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
37 family -- font 'family', e.g. Courier, Times, Helvetica
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
38 size -- font size in points
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
39 weight -- font thickness: NORMAL, BOLD
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
40 slant -- font slant: NORMAL, ITALIC
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
41 underline -- font underlining: false (0), true (1)
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
42 overstrike -- font strikeout: false (0), true (1)
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
43 name -- name to use for this font configuration (defaults to a unique name)
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
44 """
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
45
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
46 def _set(self, kw):
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
47 options = []
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
48 for k, v in kw.items():
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
49 options.append("-"+k)
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
50 options.append(str(v))
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
51 return tuple(options)
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
52
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
53 def _get(self, args):
15308
847ae40074d4 Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents: 8960
diff changeset
54 options = []
847ae40074d4 Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents: 8960
diff changeset
55 for k in args:
847ae40074d4 Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents: 8960
diff changeset
56 options.append("-"+k)
847ae40074d4 Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents: 8960
diff changeset
57 return tuple(options)
8960
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
58
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
59 def _mkdict(self, args):
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
60 options = {}
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
61 for i in range(0, len(args), 2):
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
62 options[args[i][1:]] = args[i+1]
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
63 return options
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
64
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
65 def __init__(self, root=None, font=None, name=None, **options):
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
66 if not root:
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
67 root = Tkinter._default_root
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
68 if font:
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
69 # get actual settings corresponding to the given font
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
70 font = root.tk.splitlist(root.tk.call("font", "actual", font))
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
71 else:
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
72 font = self._set(options)
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
73 if not name:
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
74 name = "font" + str(id(self))
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
75 self.name = name
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
76 apply(root.tk.call, ("font", "create", name) + font)
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
77 # backlinks!
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
78 self._root = root
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
79 self._split = root.tk.splitlist
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
80 self._call = root.tk.call
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
81
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
82 def __str__(self):
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
83 return self.name
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
84
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
85 def __del__(self):
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
86 try:
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
87 self._call("font", "delete", self.name)
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
88 except (AttributeError, Tkinter.TclError):
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
89 pass
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
90
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
91 def copy(self):
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
92 "Return a distinct copy of the current font"
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
93 return apply(Font, (self._root,), self.actual())
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
94
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
95 def actual(self, option=None):
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
96 "Return actual font attributes"
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
97 if option:
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
98 return self._call("font", "actual", self.name, "-"+option)
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
99 else:
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
100 return self._mkdict(
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
101 self._split(self._call("font", "actual", self.name))
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
102 )
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
103
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
104 def cget(self, option):
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
105 "Get font attribute"
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
106 return self._call("font", "config", self.name, "-"+option)
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
107
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
108 def config(self, **options):
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
109 "Modify font attributes"
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
110 if options:
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
111 apply(self._call, ("font", "config", self.name) +
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
112 self._set(options))
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
113 else:
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
114 return self._mkdict(
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
115 self._split(self._call("font", "config", self.name))
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
116 )
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
117
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
118 configure = config
15308
847ae40074d4 Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents: 8960
diff changeset
119
8960
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
120 def measure(self, text):
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
121 "Return text width"
16517
eee67a84e5fa String method conversion.
Eric S. Raymond <esr@thyrsus.com>
parents: 15308
diff changeset
122 return int(self._call("font", "measure", self.name, text))
8960
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
123
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
124 def metrics(self, *options):
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
125 """Return font metrics.
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
126
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
127 For best performance, create a dummy widget
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
128 using this font before calling this method."""
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
129
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
130 if options:
16517
eee67a84e5fa String method conversion.
Eric S. Raymond <esr@thyrsus.com>
parents: 15308
diff changeset
131 return int(
8960
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
132 self._call("font", "metrics", self.name, self._get(options))
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
133 )
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
134 else:
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
135 res = self._split(self._call("font", "metrics", self.name))
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
136 options = {}
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
137 for i in range(0, len(res), 2):
16517
eee67a84e5fa String method conversion.
Eric S. Raymond <esr@thyrsus.com>
parents: 15308
diff changeset
138 options[res[i][1:]] = int(res[i+1])
8960
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
139 return options
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
140
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
141 def families(root=None):
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
142 "Get font families (as a tuple)"
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
143 if not root:
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
144 root = Tkinter._default_root
15308
847ae40074d4 Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents: 8960
diff changeset
145 return root.tk.splitlist(root.tk.call("font", "families"))
8960
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
146
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
147 def names(root=None):
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
148 "Get names of defined fonts (as a tuple)"
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
149 if not root:
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
150 root = Tkinter._default_root
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
151 return root.tk.splitlist(root.tk.call("font", "names"))
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
152
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
153 # --------------------------------------------------------------------
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
154 # test stuff
15308
847ae40074d4 Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents: 8960
diff changeset
155
8960
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
156 if __name__ == "__main__":
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
157
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
158 root = Tkinter.Tk()
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
159
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
160 # create a font
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
161 f = Font(family="times", size=30, weight=NORMAL)
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
162
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
163 print f.actual()
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
164 print f.actual("family")
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
165 print f.actual("weight")
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
166
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
167 print f.config()
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
168 print f.cget("family")
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
169 print f.cget("weight")
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
170
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
171 print names()
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
172
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
173 print f.measure("hello"), f.metrics("linespace")
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
174
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
175 print f.metrics()
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
176
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
177 f = Font(font=("Courier", 20, "bold"))
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
178 print f.measure("hello"), f.metrics("linespace")
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
179
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
180 w = Tkinter.Label(root, text="Hello, world", font=f)
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
181 w.pack()
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
182
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
183 w = Tkinter.Button(root, text="Quit!", command=root.destroy)
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
184 w.pack()
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
185
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
186 fb = Font(font=w["font"]).copy()
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
187 fb.config(weight=BOLD)
15308
847ae40074d4 Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents: 8960
diff changeset
188
8960
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
189 w.config(font=fb)
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
190
9618a86879ca Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff changeset
191 Tkinter.mainloop()