Well I decided to work on a GUI for this because I need the practice. However I ran into this weird problem.
If I change line 67 from 1000 to 100 my program prints two of the last letter... http://pastebin.com/d656cfd09
(with 1000) http://www.grabup.com/uploads/195f84b4dab3...f199.png?direct
with (100) http://www.grabup.com/uploads/8fd5d3d988ec...b568.png?direct

That just makes no sense at all. I then found this forum and saw hope. Ill stop by when I have time and post stuff.

It would appear to be a threading problem. Your calls using the .after function from the Label class are basically opening up new threads. The errors are very strange, which is indicative of thread issues. For instance, you will get the string 'zzzz' from the string 'aaa' with a 25 letter shift and 1000 ms wait time. You really need to write your code so that your scrolling is completed before another call to update_func is made.

My suggestion for this would be to just use for loops instead of .after function calls. This will avoid opening up new threads which can cause all sorts of problems (which appear to be very random and difficult to explain) if you are not very careful with them. If you think that the output of the code to your GUI is moving too quickly then you can include time.sleep calls in your code to make the program wait before showing more output.

Yea I dont even think its the time it takes like you said, but now Im not sure what it is.. http://pastebin.com/f46905ecb try "free" with a shift of 3 it works fine, try it with a shift of 10.. it doubles the last letter, and I slowed everything down, now I'm even more confused.

EDIT: Think I fixed it, however I'm not sure whats going on with the last letter, it looks like it goes thought it more then once.

http://pastebin.com/f3c9e988e

Even odder, enter FREE with any shift and it returns "FREz" instead of "FREE" (like it should) this is so weird.

This article has been dead for over six months. Start a new discussion instead.