Re: Weird bug in input widgets?

Michael Lange <[email protected]>
Newsgroups gmane.comp.python.tkinter
Message-ID <[email protected]>
Hi Raphaël,

I cannot reproduce this behavior here (debian wheezy, Tk-8.5.11), however
I could only test it with a german keyboard layout with X-Composite key or
with dead keys temporarily enabled in xfce. I don't think that should
matter, though, here everything seems to work fine.
 
I can only guess, but it sounds to me like a platform- and/or Tk-version
specific issue. If you are running OS X and a recent version of Tk it
might or might not have something to do with the bug described here:
    http://sourceforge.net/p/tktoolkit/bugs/2722/
resp. with the fix that was supplied for that bug. That is is just a shot
in the dark of course.

Regards

Michael


On Sat, 31 Jan 2015 09:20:06 +0100
Raphaël SEBAN <[email protected]> wrote:

> Hi all,
> 
> While working on my latest software (tkScenarist on GitHub), I 
> encountered a really weird issue: once cleared, input widgets such as 
> Text, Entry, ttk.Entry do *NOT* accept composite-accented letters 
> (french ê, ë, etc) any more.
> 
> So, to get sure, I made the following test code:
> 
> [CODE]
> #!/usr/bin/env python3
> # -*- coding: utf-8 -*-
> 
> from tkinter import *
> 
> def clear_all (event=None):
>      # clear stringvars
>      for svar in cvars:
>          svar.set("")
>      # end for
>      # clear text widgets
>      for wtext in texts:
>          wtext.delete("1.0", END)
>      # end for
> # end def
> 
> def test (nb_of_widgets):
>      global root, cvars, texts
>      root = Tk()
>      root.title("test #{}".format(nb_of_widgets))
>      cvars = list()
>      for n in range(nb_of_widgets):
>          svar = StringVar()
>          cvars.append(svar)
>          Entry(root, textvariable=svar).pack()
>      # end for
>      texts = list()
>      for n in range(nb_of_widgets):
>          wtext = Text(root, height=2, width=20)
>          wtext.pack()
>          texts.append(wtext)
>      # end for
>      Button(root, text="Clear all", command=clear_all).pack(side=LEFT)
>      Button(root, text="Quit", command=root.destroy).pack(side=RIGHT)
>      # events main loop
>      root.mainloop()
> # end def
> 
> if __name__ == "__main__":
>      # launch test series
>      for n in range(1, 4):
>          test(n)
>      # end for
> # end if
> [/CODE]
> 
> Detailed description of the issue:
> 
> * French keyboards are arranged in such a way that you must compose 
> accented letters as ê (e circumflex) or ë (e diaeresis) by pressing 
> first the '^' key and then the letter to compose with (e.g. a, e, i, o, 
> u, y) in order to get the final composite-accented letter (â, ä, ê, ë, 
> and so on);
> 
> * when you launch the test script (cited above) and then type, let's 
> say, the e circumflex letter (ê) into the Entry widget and into the
> Text widget, respectively:
> 
> 	* the first time, you'll get the right letters inserted into
> the input widgets;
> 	* then click on 'Clear all' button and enter once again the
> same composite-accented letter into *ALL* the input widgets;
> 	* secund time, only the last pack()-ed input widget will get
> the right input, all other widgets will show unaccented letters;
> 
> * the test script tries with 1 Entry and 1 Text input widgets, then
> with 2 input widgets and finally with 3 input widgets;
> 
> * each time you get the same issue: only the last pack()-ed input
> widget shows the right input letter, all the rest showing unaccented
> letters.
> 
> This issue is quite embarrassing for me as my latest software manages 
> with movie scenario scriptwriting, which *MUST* be written with correct 
> accents in French, otherwise all the purpose of the software would
> collapse.
> 
> Is this a known issue?
> 
> Thank you for your expert advice.
> 
> Regards.
> 
> Raphaël SEBAN alias tarball69.
> _______________________________________________
> Tkinter-discuss mailing list
> [email protected]
> https://mail.python.org/mailman/listinfo/tkinter-discuss



.-.. .. ...- .   .-.. --- -. --.   .- -. -..   .--. .-. --- ... .--. . .-.

Compassion -- that's the one things no machine ever had.  Maybe it's
the one thing that keeps men ahead of them.
		-- McCoy, "The Ultimate Computer", stardate 4731.3
_______________________________________________
Tkinter-discuss mailing list
[email protected]
https://mail.python.org/mailman/listinfo/tkinter-discuss
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.