pycairo 中的文本和线条
Text and lines in pycairo
我在使用 pycairo 时遇到了一些麻烦。我想画一个chord chart,但出于某种原因我不太明白它只显示文本,而不是它应该画的线。
我使用 pygtk (3.0) 和 pycairo。 Here's the result of what this code draws
代码如下:
def gen_chart(self, wid, cr):
x = 10
y = 60
cr.set_source_rgb(0, 0, 0)
cr.set_line_width(1)
cr.select_font_face("Open Sans", cairo.FONT_SLANT_NORMAL, cairo.FONT_WEIGHT_NORMAL)
cr.set_font_size(40)
cr.move_to(x, y)
cr.line_to(x, y)
counter = 1
for measure in chord_list: # The list is declared earlier in the source
x += 10
for chord in measure:
cr.move_to(x, y)
cr.show_text(chord)
x += 100
if counter % 4 == 0 or counter == 4:
x = 10
y += 60
cr.move_to(x, y)
cr.line_to(x, y)
counter += 1
counter += 1
cr.move_to(x, y + 10)
cr.move_to(x, y + 10)
cr.stroke()
在此先感谢任何可以帮助我的人。
代码的问题在于它 "draws" 一条指向相同坐标的线,所以它变成了一个没有二维属性的点,这就是它不绘制任何东西的原因。更正后的代码:
def gen_chart(self, wid, cr):
x = 10
y = 60
cr.set_source_rgb(0, 0, 0)
cr.set_line_width(1)
cr.select_font_face("Open Sans", cairo.FONT_SLANT_NORMAL, cairo.FONT_WEIGHT_NORMAL)
cr.set_font_size(40)
cr.move_to(x, y)
cr.line_to(x, y)
counter = 1
for measure in chord_list:
x += 10
for chord in measure:
cr.move_to(x, y)
cr.show_text(chord)
x += 100
if counter % 4 == 0 or counter == 4:
x = 10
y += 60
cr.move_to(x, y)
cr.line_to(x, y + 10)
counter += 1
counter += 1
cr.move_to(x, y + 80)
cr.stroke()
我在使用 pycairo 时遇到了一些麻烦。我想画一个chord chart,但出于某种原因我不太明白它只显示文本,而不是它应该画的线。
我使用 pygtk (3.0) 和 pycairo。 Here's the result of what this code draws
代码如下:
def gen_chart(self, wid, cr):
x = 10
y = 60
cr.set_source_rgb(0, 0, 0)
cr.set_line_width(1)
cr.select_font_face("Open Sans", cairo.FONT_SLANT_NORMAL, cairo.FONT_WEIGHT_NORMAL)
cr.set_font_size(40)
cr.move_to(x, y)
cr.line_to(x, y)
counter = 1
for measure in chord_list: # The list is declared earlier in the source
x += 10
for chord in measure:
cr.move_to(x, y)
cr.show_text(chord)
x += 100
if counter % 4 == 0 or counter == 4:
x = 10
y += 60
cr.move_to(x, y)
cr.line_to(x, y)
counter += 1
counter += 1
cr.move_to(x, y + 10)
cr.move_to(x, y + 10)
cr.stroke()
在此先感谢任何可以帮助我的人。
代码的问题在于它 "draws" 一条指向相同坐标的线,所以它变成了一个没有二维属性的点,这就是它不绘制任何东西的原因。更正后的代码:
def gen_chart(self, wid, cr):
x = 10
y = 60
cr.set_source_rgb(0, 0, 0)
cr.set_line_width(1)
cr.select_font_face("Open Sans", cairo.FONT_SLANT_NORMAL, cairo.FONT_WEIGHT_NORMAL)
cr.set_font_size(40)
cr.move_to(x, y)
cr.line_to(x, y)
counter = 1
for measure in chord_list:
x += 10
for chord in measure:
cr.move_to(x, y)
cr.show_text(chord)
x += 100
if counter % 4 == 0 or counter == 4:
x = 10
y += 60
cr.move_to(x, y)
cr.line_to(x, y + 10)
counter += 1
counter += 1
cr.move_to(x, y + 80)
cr.stroke()