Epilogue — PAGE 8 documentation

# Epilogue

## Final Recommendations

My final recommendation are

> - Save often.

> - Spring for Grayson’s book.

> - Save often.

> - Please report problems.

## Acknowledgments

First thanks to HP for assigning the rights of PAGE to me which allows me to make this available to the Python community.

Again, let me acknowledge that PAGE is built on top of Visual Tcl. Without that work I would not have known how to get started.

George Tellalov introduced me to relative placement and made numerous helpful suggestions.

Guilherme Polo did a marvelous job implementing and documenting Pyttk. He helped me understand several of the new ttk widgets and showed how to easily build scrolled versions of them. His documentation convinced me to use Sphinx for the PAGE documentation.

I would like to thank Greg Walters especially for writing a series of articles on Python programming that include two on PAGE and for his encouraging me to get the Alias feature working correctly. (See below for references and URL’s.) I borrowed from his article the code for busy cursors included as a sample above. This year, 2018, he wrote a tutorial for learning PAGE which is included in the documentation directory, “/page/docs/tutorial”. He has also been a continuous font of good ideas.

I would like to acknowledge the work of Kent Fox in aiding testing of PAGE on three systems and bringing to light several bugs.

I borrowed the ColorDlg.tcl color picker from Le site de Jack. I found it very satisfactory and give my thanks.

Also borrowed was ColorExplorer written by William J. Poser.

Alexander Walters suggested the code for importing the tkinter and ttk modules adopted in PAGE 4.1.

Sam Manzi made numerous helpful suggestions and helped test recent versions of PAGE.

Many people have reported bugs and made suggestions. Piero Ronchi and Paul Kreiger have been especially helpful. In addition, Paul Kreiger donated a set of PAGE icons and a canvas example.

Bob Stanton suggested displaying both the GUI module and the Support module in separate Python Consoles and also firing up an IDE with the two modules. Both were excellent ideas and so implemented.

Maksim Korzh was the inspiration and implementer of the main feature of version 4.10 - the inclusion of the PNotebook feature which is the notebook widget with builtin tab closing. I find the Ttk style mystifying and undocumented; I would never have figured it out. Maksim was in Kyiv when contributing and I am assuming that he is fighting for his country.

Steffen Illhardt helped me to better understand encoding issues involved when transferring files between different countries and operating systems and he also provided the code changes to PAGE which reduces the problem.

## Documentation

One problem that many people must encounter when trying to use Tkinter with python is locating adequate documentation. I relied heavily on Grayson’s book particularly to see how to map the various tcl calls and configuration options into python calls and for descriptions of the available functions. I would have gotten nowhere without this reference. Unfortunately, Grayson predated the ttk widget set by several years.

Over the years, Greg Walters published many great articles on using PAGE. He has written really good PAGE Tutorials which can be found in the “page/docs/tutorial” subdirectory along with his sample code. His long series of articles on Python programming are available via his new web site TheDesignatedGeek. He continues writing about, shepherding the Page GUI UNOFFICIAL Support Discord server, testing PAGE, and authoring a book about PAGE.

I have also found “Tkinter 8.5 reference: a GUI for Python” by John W. Shipman from New Mexico Tech helpful on many occasions. Unfortunately, this work is no longer online at New Mexico Tech but I found that it is available at the TkDocs site.

See also http://effbot.org which contains hundreds of articles on Python and related technologies (including PIL, ElementTree, Tkinter, and other extensions). I have used this reference repeatedly. It looks like effbot.org has gone away, at least for a while. Luckily, thanks to a site on Internet Archive named “Wayback Machine”, you can still access at least most of the information from effbot.org. You can go to the following link:

https://web.archive.org/web/20200313162617/http://effbot.org/tkinterbook/tkinter-index.htm#class-reference

For Tcl/Tk documentation visit: Tcl Developer Site.

A very useful Tk tutorial with information about ttk widgets and styles is TkDocs.

“Python and Tkinter Programming” by John Grayson and published by Manning has been of great help to me.

Since some people find Python Lambda usage confusing, Grant Hilebrand suggested including a reference to the excellent tutorial at https://web.archive.org/web/20221225081839/https://pythonconquerstheuniverse.wordpress.com/2011/08/29/lambda_tutorial/

Unfortunately, there is no useful documentation for Visual Tcl like so many Open Source projects.

I have recently turned on a discussion forum on the SourceForge summary page General Discussion.

For information on sharing variables and functions between Python modules see is how to share global variables across module. A good reference is How do I share global variables across modules?.

A very gratifying blog posting entitled Creating GUIs With Page by Alan Yorinks. He then followed with an article featuring Page on hackster.io entitled A Tkinter GUI for the RoboHAT.

Greg Walters has published a book on using PAGE. It’s named “Python GUI Programming with PAGE”.

The back cover of the book reads: “This comprehensive book is your guide from installing the PAGE designer to mastering the creation of complex GUI interfaces. It covers a wide range of topics, from building front-end interfaces for SQLite databases (and other databases) to utilizing the Canvas widget for drawing shapes and text. The book explores various aspects, including working with standard Tk widgets (such as buttons and entry), leveraging the capabilities of the ttk toolkit, and extending GUI functionality through third-party widget libraries and custom widgets. Each chapter presents real-world usable programs that challenge readers to enhance their skills and become more productive in your programming careers.

By the end of the book, you will possess the skills and knowledge to confidently develop your own GUI Python programs.”

### Reporting Problems

I really welcome the reporting of problems; that is the only way I can catch many of them. When reporting problems to “Don dot Rozenberg at gmail dot com” please include the following:

- The version number of PAGE.

- The OS you are using.

- When PAGE dies it often shows an Error window containing the traceback. There is a save button which will save the traceback. It would be of enormous help to include that file with your error report.

- If possible the tcl file that caused the error. Even better would be a simple case causing the same error.

If your subject line contains the word PAGE, my email reader will place the message in a separate folder where I will see it sooner.