Am 03.01.15 um 00:03 schrieb accessnew...@gmail.com:
I have a script that I trying to go from command line entry to interface entry. 
I am tinkering with Tkinter and want to review some Tkinter interface building 
scripts. Really basic stuff covering file selection and making some of the data 
captured required I am learning how to use Tkinter (Python 2.7) to build a data 
entry interface where the variables (about 15 data entry fields in all) will be 
used later in the script to perform some analyses. I have a few requirements 
when capturing the data:

 1   Must be able to navigate to a file and capture entire filename and 
pathname (which may be on a network rather than the C drive)
 2   Capture date
 3   Capture text (Some of the data entry fields will have commas)
 4   Some of the data entry fields are required, some are not.

Is there a sample script out there that I can review to see how
these  features are accomplished? I am particularly stumped by #1 and 4.

1: Does tkFileDialog.askopenfilename() fulfill your needs? On Windows, this should open the native file dialog. Usually, one packs a button near an entry widget to open the file dialog and the return value is placed in the entry

2: There are some date megawidgets. But you might prefer to just have an entry and validate the input / convert it to a date

3: The basic entry widget should do. It has no problems with commas. the only critical character is a tab, because it switches to the next field

4: GUI widgets don't have the notion of being required or not, that is entirely up to your application. Usually, there will be an "Apply" or "Submit" button or similar (or the action is bound to the Return key). On that occasion, don't accept the data if the required fields are left blank.

In general, you need to validate all input fields before you accept them. This is specific to your application and can't be handled by the toolkit itself. For common tasks like single real numbers, there are ready-made validators available that can validate the input already during editing. Note this is more difficult to get right than it seems at first glance; e.g. copy/pasting can be damaged if the validator is too simple. It is much easier to validate only before the data is accepted.

There are also several choices how you react if the validation fails. You could show the error in a popup (tkMessageBox). This is the simplest approach, but makes the error unavailable to the user after it is acknowledged. A better method from a usability perspective is a status line that signals the error, possibly in red, and also marks the fields with errors in red. All of this can be done in a couple of lines easily, but is lots of work to do completely right and capture every possible case.

        Christian
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to