GUI Type

Site Navigation


Create Applications and/or Dialogs

By selecting "Main Window" or "Dialog" from the Main Form, tk_happy will create python source code for either a main-window type application or simply a dialog that will be called from an application.

Each project is given a name and tk_happy will save results files with the project name as a file prefix. A project named "myApp", for example, will save tk_happy information to "myApp.def". If the project is a "Main Window", the python source code will be saved to "". If "Dialog" is selected, the python source code will be saved to "".

An example of source code created for a "Main Window" is shown on this sites web page "Python Source". The following is the bottom of a python source file for a dialog. If the dialog file is run stand-alone, then a test application is run that calls the dialog.

Notice that the test function prints the results of the dialog with the line "print dialog.result"

class _Testdialog:
    def __init__(self, master):
        frame = Frame(master, width=300, height=300)
        self.master = master
        self.x, self.y, self.w, self.h = -1,-1,-1,-1

        self.Button_1 = Button(text="Test Dialog", relief="raised", width="15"), y=36)
        self.Button_1.bind("<ButtonRelease-1>", self.Button_1_Click)

    def Button_1_Click(self, event): #click method for component ID=1
        dialog = _Entry(self.master, "Test Dialog")
        print '===============Result from Dialog===================='
        print dialog.result
        print '====================================================='

def main():
    root = Tk()
    app = _Testdialog(root)

if __name__ == '__main__':

The "validate" function returns the result of the dialog.

The default for tk_happy is to return a dictionary from the dialog, however, the user can change the return value to anything they want.

    # tk_happy generated code. DO NOT EDIT THE FOLLOWING. section "dialog_validate"
    def validate(self):
        self.result = {} # return a dictionary of results

        # >>>>>>insert any user code below this comment for section "dialog_validate"
        # set values in "self.result" dictionary for return
        # for example...
        # self.result["age"] = self.Entry_2_StringVar.get() 

        self.result["info"] = self.Entry_1_StringVar.get()
        return 1

tk_happy will create dialogs as well as applications.

Colorized listings thanks to ASPN Recipe at by Peter Krantz