How do I get the current widget in focus without changing focus?
Expand Post »
i'm trying to implement my own edit menu using Tkinter,
my cut and copy methods,... seems to work fine but I'm having allot of trouble getting my paste method to work. will someone please help?
(((its kinda ugly i know, but i'm still new to programming and i'm more focused on getting it
to work right. later I'll go back and really clean up my code and oop practice. )))
app['info']['name']
app['info']['balance']
are both entry widgets
app['info']['item'][ # ]
app['info']['cost'][ # ]
app['info']['date'][ # ]
are lists of entry widgets
def _copy(self):
app=self.app
if app['info']['name'].select_present():
if app['info']['name'].focus_get():
app['info']['name'].clipboard_clear()
app['info']['name'].clipboard_append( app['info']['name'].selection_get() )
elif app['info']['balance'].select_present():
if app['info']['balance'].focus_get():
app['info']['balance'].clipboard_clear()
app['info']['balance'].clipboard_append( app['info']['balance'].selection_get() )
else:
i = 0
for i in range(200):
app['catagory_info']['item'][i].clipboard_clear()
app['catagory_info']['cost'][i].clipboard_clear()
app['catagory_info']['date'][i].clipboard_clear()
if app['catagory_info']['item'][i].select_present():
if app['catagory_info']['item'][i].focus_get():
app['catagory_info']['item'][i].clipboard_append(
app['catagory_info']['item'][i].selection_get() )
elif app['catagory_info']['cost'][i].select_present():
if app['catagory_info']['cost'][i].focus_get():
app['catagory_info']['cost'][i].clipboard_append(
app['catagory_info']['cost'][i].selection_get() )
elif app['catagory_info']['date'][i].select_present():
if app['catagory_info']['date'][i].focus_get():
app['catagory_info']['date'][i].clipboard_append(
app['catagory_info']['date'][i].selection_get() )
x=0
if app['info']['name'].select_present():
if app['info']['name'].focus_get():
app['info']['name'].clipboard_clear()
app['info']['name'].clipboard_append( app['info']['name'].selection_get() )
app['info']['name'].delete(SEL_FIRST,SEL_LAST)
elif app['info']['balance'].select_present():
if app['info']['balance'].focus_get():
app['info']['balance'].clipboard_clear()
app['info']['balance'].clipboard_append( app['info']['balance'].selection_get() )
app['info']['balance'].delete(SEL_FIRST,SEL_LAST)
else:
i = 0
for i in range(200):
app['catagory_info']['item'][i].clipboard_clear()
app['catagory_info']['cost'][i].clipboard_clear()
app['catagory_info']['date'][i].clipboard_clear()
if app['catagory_info']['item'][i].select_present():
if app['catagory_info']['item'][i].focus_get():
app['catagory_info']['item'][i].clipboard_append(
app['catagory_info']['item'][i].selection_get() )
app['catagory_info']['item'][i].delete(SEL_FIRST,SEL_LAST)
elif app['catagory_info']['cost'][i].select_present():
if app['catagory_info']['cost'][i].focus_get():
app['catagory_info']['cost'][i].clipboard_append(
app['catagory_info']['cost'][i].selection_get() )
app['catagory_info']['cost'][i].delete(SEL_FIRST,SEL_LAST)
elif app['catagory_info']['date'][i].select_present():
if app['catagory_info']['date'][i].focus_get():
app['catagory_info']['date'][i].clipboard_append(
app['catagory_info']['date'][i].selection_get() )
app['catagory_info']['date'][i].delete(SEL_FIRST,SEL_LAST)
##########################################################
def _paste(self):
if app['info']['name'].focus_get():
app['info']['name'].insert(INSERT, app['info']['name'].clipboard_get())
if app['info']['balance'].focus_get():
app['info']['balance'].insert(INSERT, app['info']['balance'].clipboard_get())
...
...
...
<<<< this _paste method doesn't work, it always sets the focus to app['info']['name']
no mater where i paste at. How do I query where the insertion point is?
please someone help me. I've been going through Tkinter tutorials for over a week now, but i can not find a solution and i feel like its one of those really simple things that just keeps aluding me.
Re: How do I get the current widget in focus without changing focus?
he was saying if you expect us to look at your code, put that before and after your code in your post. so that we can see syntax highlighting and what not.
Last edited by tyincali; Oct 29th, 2008 at 12:17 am.
he was saying if you expect us to look at your code, put that before and after your code in your post. so that we can see syntax highlighting and what not.
Yes, this is for the forum members' sake. This way your code doesn't lose indentation and become unreadable to us. It also saves space, and turns on syntax highlighting.
File "C:\Python25\lib\lib-tk\Tkinter.py", line 1403, in__call__
returnself.func(*args)
File "C:\Python25\prg\bs1.py", line 258, in _paste
w= app['info']['name'].displayof()
AttributeError: Entry instance has no attribute 'displayof'
I appreciate all your patience and help,... i really am stuck,... I am self taught and also the only person in my life and family who has any interest in programming.. so hearing from you all was a real ray of hope 4 me
i'm still learning how everything works, and i'm still very much a newbe,..
If you feel annoyed by Tkinter, try others also!
I found myself in love with wxpython. Some have fallen in hands of pyQt, PyGTK etc. I mean when you start learning try as amny available as you can and then choose among them. Don't underestimate Tkinter, I don't mean it is uselless, No! It is great, but I mean as I said you may fall in hands of one of those
Either the thread starter or a moderator has marked this thread as solved. You can most likely trust the responses and answers given. There is most likely no reason for any further responses to be posted here. If you have a related question, please start a new thread in this forum instead.
This thread is more than three months old
No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.