2009-09-24 5 views
1

Я ищу очень простой холст для python. Мне действительно нужна возможность рисовать линии и круги, перемещать их/избавляться от них и прокручивать холст (так что я идеально рисую бесконечный холст и просто прокручиваю его). В идеале, код будет выглядеть следующим образом:Предложения на холсте Python

c = Canvas() 
l1 = c.line((x0, y0), (x1, y1)) 
l2 = c.line((x2, y2), (x3, y3)) 
c1 = c.circle(((x0 + x1 + x2 + x3)/4, (y0 + y1 + y2 + y3)/4), 10) 
c1.delete() 
l1.move(5, 10) 
c.scroll(5, 5) 

Это просто какой-то код мечты, я в порядке с некоторыми минимальными шаблонным, но я на самом деле ничего сверхъестественного, вероятно, единственной особенностью не нужен, я бы очень хотел бы возможность встроить в какой-то графический интерфейс, который хорошо выглядит в Windows (что исключает Tkinter) и не является чрезвычайно тяжелым (что может исключить GTK/Cairo).

Это в Python 2.6. Я был бы рад предоставить любую другую информацию,

ответ

1

Я закончил с использованием WxPython с встроенной FloatCanvas. Я бы не советовал это кому-либо еще; это зависит от NumPy, который является очень большой установкой и почти полностью недокументирован (чтение источников было большой частью приложения, которое я запрограммировал). Это, однако, очень приятно и много для вас.

WxWiki: http://wiki.wxpython.org/FloatCanvas

Docs: http://www.wxpython.org/docs/api/wx.lib.floatcanvas-module.html

Devel: http://trac.paulmcnett.com/floatcanvas

0

Я использовал PyGame с хорошей долей успеха для таких вещей:

http://www.pygame.org/

+0

Я посмотрел на PyGame и это выглядит красиво, но как я могу переместить поверхность вокруг? Я не хочу вручную перерисовывать сотни строк каждый раз, когда поверхность движется. Кроме того, есть ли способ удалить круг или линии, как только вы его нарисовали? – pavpanchekha

+0

Я создал набор «объектов». Каждый «объект» (будь то ракета, или ракета, или звезда) имел способ нарисовать себя. Тогда просто сделать только то, что находится в видимой области. Каждый кадр, я бы рисовал по области, а затем меняю его на видимый экран. Нулевое мерцание, и вы на 100% контролируете. Это может быть немного сложнее, чем вы ищете. – gahooa

Смежные вопросы