Hi, > But how then do I separate out the logic and the GUI? I usually write a library (C library, Python module, ...) which contains the logic.
Then, I write a GUI (in a separate file), which imports and uses the library. If I need another UI (e.g. GUI with an other toolkit, or a text-based or HTML5-based interface), I simply write another UI (in a separate file), and import+use the library again. That's the cleanest way to separate user-interface and logic in my opinion. (But keep in mind that it's not always obvious which parts belong to the library and which belong to the GUI, and you sometimes have to carefully think about it.) Oh, and yes, you can do nice things then, e.g. remote-GUIs by transparently tunneling all calls from the GUI to the library through RPC over a network (like I have done with a GTK+-GUI for Raspberry Pi; the GUI runs on the PC, uses JSON-RPC over TCP-sockets and calls functions on the RPi). regards, Roland -- http://mail.python.org/mailman/listinfo/python-list