Andrzej Kolinski wrote:
I would like to go even further and employ Tkinter to:
- open and run a C and/or Python code (including arguments where necessary),
- name and save generated html/php files.


The only thing I found is the following line of code:
filemenu.add_command(label="Open...", command=askopenfile)
- which obviously does not do the job.

Tkinter is a GUI framework ... Basically, with Tkinter, you attach the code you want to run to GUI events.


eg:

from Tkinter import *
import tkMessageBox
import tkFileDialog
import os

# This will hold the entry widgets, for later reference.
entries = {}

tk = Tk()

Label(tk, text='Program:').grid(row=0, column=0)
entries['program'] = Entry(tk)
entries['program'].grid(row=0, column=1)

Label(tk, text='Arg 1:').grid(row=1, column=0)
entries['arg1'] = Entry(tk)
entries['arg1'].grid(row=1, column=1)

Label(tk, text='Arg 2:').grid(row=2, column=0)
entries['arg2'] = Entry(tk)
entries['arg2'].grid(row=2, column=1)

Label(tk, text='Arg 3:').grid(row=3, column=0)
entries['arg3'] = Entry(tk)
entries['arg3'].grid(row=3, column=1)

# Build a 'Browse' button for the program field.
def browseProg(self):
    prog = tkFileDialog.askopenfilename()
    if prog:
        entries['program'].delete(0, END)
        entries['program'].insert(END, prog)

Button(tk, text='Browse', command=browseProg).grid(row=0, column=2)

# Callback to run the program specified.
def runProgram():
    prog = entries['program'].get()
    arg1 = entries['arg1'].get()
    arg2 = entries['arg2'].get()
    arg3 = entries['arg3'].get()

    if not os.path.exists(prog):
        tkMessageBox.showerror('Error', '%s: File not found!' % prog)
        return

    args = filter(None, [arg1, arg2, arg3])

    os.system(' '.join([prog] + args))

Button(tk, text='Run', command=runProgram).grid()

tk.mainloop()

---------------------------------------------------------

It should go without saying that there are security concerns when you are allowing users to run arbitrary programs!

--
John.
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to