Skip to main content

tkinter simplified (and augmented) canvas

Project description

This package provides a supercanvas widget based on the original tkinter canvas. It provides a fast useable canvas for function drawing.

class object

>>> from supercanvas import *

Once package importation completed, you have to create a supercanvas the usual way.

r = tkinter.Tk()
c = supercanvas(r, bg="white", width=800, height=600)

origin and units

By default, origin is located at supercanvas's center and units are both 1 pixel (and axes are drawn in french style with arrows). You can change this with setOrigin and setUnit methods:

c.setUnit(80, 100)
c.setOrigin(50, 200)

supercanvas items

supercanvas provides, for the moment, two items to draw Point and Line:

  • drawPoint method create a point at the desired coords.
f = lambda x:x**2
x = 3
c.drawPoint(x, f(x), fill="red", outline="red")

It's based on create_oval so you can pass each option related to Oval object.

  • drawLine method create a line with a list of coords.
c.drawLine([(-2, 2), (-1, 0), (0, 3)], fill="blue", width=3)

drawLine also supports a flat list of coords:

c.drawLine([-2, 2, -1, 0, 0, 3], fill="blue", width=3)

gives the same line.

cursor

The cursor gives you actual coords of its position. In the future, you will be able to toggle this feature.

You can move the whole supercanvas content in grabing / realeasing the background. It will refresh coords.

full example

from supercanvas import *
import math
r = tkinter.Tk()

c = supercanvas(r, bg="white", width=800, height=600)
c.setUnit(100, 100)

f=lambda x:math.cos(x)
g=lambda x:math.sin(x)

p = .1
a, b = -3, 3
x = a
listePointsF = []
listePointsG = []
for i in range(int(1 + (b - a) / p)):
    # creating points 
    c.drawPoint(x, f(x), fill="red", outline="red")
    # two lists
    # function f with tuples
    listePointsF += (x, f(x))
    # function g with flat list
    listePointsG += [x]+[g(x)]
    x += p

# drawings of the two curves
c.drawLine(listePointsF, fill="green")
c.drawLine(listePointsG, fill="blue", width=3)

# balancing canvas on the root
c.pack(expand=True)

# q to quit
r.bind("<q>", quit)
tkinter.mainloop()

further

Much much more!

about

supercanvas is rather an attempt to publish on the PyPi packages index than a fully completed python project, I do not recommend supercanvas usage for professionnal use. You have to consider this package as an experiment.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

supercanvas-0.1.0.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

supercanvas-0.1.0-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file supercanvas-0.1.0.tar.gz.

File metadata

  • Download URL: supercanvas-0.1.0.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.2rc1

File hashes

Hashes for supercanvas-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6620a44881bbee0bc96204b6cb50c7ae8692bbfdb403c89f0acafba34030152f
MD5 d4bbbdf5333f9ebd5ecb8c117a440f25
BLAKE2b-256 842707f195f3ba9cfb15aa58f2a9eac582d2abe36b42f1e2f13ce8c5d9a61566

See more details on using hashes here.

File details

Details for the file supercanvas-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: supercanvas-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.2rc1

File hashes

Hashes for supercanvas-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 42afe2898592220a97e44e37010286b8269e41683ba92d354856a96e7fd5a495
MD5 c9391baedb06738f3096ec4b618b33ca
BLAKE2b-256 659e2f79358b3e45f59f6540a6d4fc682635351bfd18b114841e589bafa8ac11

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page