tkinter question

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Eric_Dexter@msn.com

    tkinter question

    I saw this (close to this anyway) lieing around on the internet and
    was wanting to use it to define a start point exc but I need the
    graphics to stay within a set y coords and I am not realy sure how to
    do that. I have no idea on how to bind a min/max y to it. (the
    concept is inspired by the java csound blue).


    #!/usr/bin/python
    from Tkinter import *
    import csoundroutines as cs


    root = Tk()


    global canv
    xx = {}

    def makeFrame(root) :
    global canv
    test = cs.csdInstrumen tlist3('bay-at-night.csd')
    canv = Canvas (root, height = 200, width = 350)

    for i in range (0, len(test.instr_ number)):
    canv.create_tex t(10, i *10, text=str(test.i nstr_number[i]) +
    '...', tags=('movable' ))
    xx[i] = canv.tag_bind(' movable', '<B1-Motion>', slide) #B1-motion
    is a drag with left button down
    canv.pack()


    def slide (event):
    '''
    triggered when something is dragged on the canvas - move thing
    under
    mouse ('current') to new position
    '''
    newx = event.x
    if event.y < 10 and event.y 0:
    newy = event.y
    canv.coords('cu rrent', newx, newy)


    makeFrame(root)
    root.mainloop()
  • Chuckk Hubbard

    #2
    Re: tkinter question

    Hello.
    How about this? I changed the if statements so the coordinates are
    always updated, but only changed if within the right limits, otherwise
    updated to the existing value. Now if you drag outside the limits of
    one dimension, it still moves in the other dimension. Not sure if
    that's what you want. I'm amazed that this can be so simple, I came
    up with an intricate system for my app, not realizing I could bind
    events to canvas items!
    BTW, I've never come across csoundroutines, can you give me a synopsis
    of what it's for? I'm using the Python Csound API. This is why I
    commented out all the references to csoundroutines, I don't have it
    installed at the moment.
    -Chuckk

    #!/usr/bin/python
    from Tkinter import *
    #import csoundroutines as cs


    root = Tk()


    global canv
    xx = {}

    def makeFrame(root) :
    global canv
    # test = cs.csdInstrumen tlist3('bay-at-night.csd')
    canv = Canvas (root, height = 200, width = 350)

    # for i in range (0, len(test.instr_ number)):
    for i in range (0, 4):
    # canv.create_tex t(10, i *10, text=str(test.i nstr_number[i]) +
    canv.create_tex t(10, i *10, text=str(i) +
    '...', tags=('movable' ))
    xx[i] = canv.tag_bind(' movable', '<B1-Motion>', slide) #B1-motion
    is a drag with left button down
    canv.pack()


    def slide (event):
    '''
    triggered when something is dragged on the canvas - move thing
    under
    mouse ('current') to new position
    '''
    if 0 < event.x < 200:
    newx = event.x
    else: newx = canv.coords('cu rrent')[0]
    if 0 < event.y < 100:
    newy = event.y
    else: newy = canv.coords('cu rrent')[1]
    canv.coords('cu rrent', newx, newy)


    makeFrame(root)
    root.mainloop()


    On Fri, Oct 3, 2008 at 3:44 PM, Eric_Dexter@msn .com <Eric_Dexter@ms n.comwrote:
    I saw this (close to this anyway) lieing around on the internet and
    was wanting to use it to define a start point exc but I need the
    graphics to stay within a set y coords and I am not realy sure how to
    do that. I have no idea on how to bind a min/max y to it. (the
    concept is inspired by the java csound blue).
    >
    >
    #!/usr/bin/python
    from Tkinter import *
    import csoundroutines as cs
    >
    >
    root = Tk()
    >
    >
    global canv
    xx = {}
    >
    def makeFrame(root) :
    global canv
    test = cs.csdInstrumen tlist3('bay-at-night.csd')
    canv = Canvas (root, height = 200, width = 350)
    >
    for i in range (0, len(test.instr_ number)):
    canv.create_tex t(10, i *10, text=str(test.i nstr_number[i]) +
    '...', tags=('movable' ))
    xx[i] = canv.tag_bind(' movable', '<B1-Motion>', slide) #B1-motion
    is a drag with left button down
    canv.pack()
    >
    >
    def slide (event):
    '''
    triggered when something is dragged on the canvas - move thing
    under
    mouse ('current') to new position
    '''
    newx = event.x
    if event.y < 10 and event.y 0:
    newy = event.y
    canv.coords('cu rrent', newx, newy)
    >
    >
    makeFrame(root)
    root.mainloop()
    --

    >


    --

    Comment

    Working...