Weird bug in input widgets?

Raphaël SEBAN <[email protected]>
Newsgroups gmane.comp.python.tkinter
Message-ID <[email protected]>
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
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.