PIDDLE
StringTest
"""
This module tests basic font- and string-handling functions of PIDDLE.
In particular, it illustrates the seven standard fonts.
"""
from piddle import *
### change the following two lines to try a different PIDDLE backend:
from piddleQD import QDCanvas
TestCanvas = QDCanvas
tx = 10
ty = 70
def Write(s, font=None):
global tx,ty
if font: canvas.defaultFont = font
text = s
while text and text[-1] == '\n': text = text[:-1]
canvas.drawString(text, x=tx, y=ty)
if s[-1] == '\n':
tx = 10
ty = ty + canvas.fontHeight() + canvas.fontDescent()
else:
tx = tx + canvas.stringWidth(s)
def CenterAndBox(s, cx=200, y=40):
"tests string positioning, stringWidth, fontAscent, and fontDescent"
canvas.drawLine(cx,y-30, cx,y+30, color=yellow)
w = canvas
w = canvas.stringWidth(s)
canvas.drawLine(cx-w/2, y, cx+w/2, y, color=red)
canvas.drawString(s, cx-w/2, y )
canvas.defaultLineColor = Color(0.7,0.7,1.0) # light blue
canvas.drawLine(cx-w/2, y-20, cx-w/2, y+20) # left
canvas.drawLine(cx+w/2, y-20, cx+w/2, y+20) # right
asc, desc = canvas.fontAscent(), canvas.fontDescent()
canvas.drawLine(cx-w/2-20, y-asc, cx+w/2+20, y-asc) # top
canvas.drawLine(cx-w/2-20, y+desc, cx+w/2+20, y+desc) # bottom
def StandardFonts():
canvas.defaultLineColor = black
global tx,ty
for size in (12, 18):
for fontname in ("times", "courier", "helvetica", "symbol",
"monospaced", "serif", "sansserif"):
tx = 10
ty = ty + size*1.5
Write("%s %d " % (fontname,size), Font(face=fontname, size=size))
Write("bold ", Font(face=fontname, size=size, bold=1))
Write("italic ", Font(face=fontname, size=size, italic=1))
Write("underline", Font(face=fontname, size=size, underline=1))
try:
canvas.close()
except: pass
canvas = TestCanvas( size=(400,400) )
CenterAndBox("spam, spam, spam, baked beans, and spam!")
StandardFonts()
http://www.strout.net/info/coding/python/piddle/stringtest.html
Last Updated:
5/17/99
. . . . . .
webmaster@strout.net