Re: How to run idle.py from embedded python in another application
Terry Reedy <[email protected]>
| Newsgroups | gmane.comp.python.idle |
|---|---|
| Message-ID | <[email protected]> |
On 9/23/2014 2:09 AM, 暮如雪 wrote: > hi, All: > > I am using embedded python in an MFC application, I need the > embedded python interpreter to do some calculation, and now, I want it > to do more, I need to open the python editor, like what can be done from > IDLE GUI, where you can open FileList.py under libs\idle\ sub folder in The directory is Lib/idlelib. However, Idle is a application. Directly importing modules within idlelib is not supported. Their names and APIs are mostly private; see PEP 443. However, you have at least 3 other choices: 1. "import idlelib.idle" should start Idle properly. 2. run "python -m idlelib" in a subprocess should do it also. 3. Idle has a lot a baggage that you may not want. Instead, import tkinter and build a simple app around a Text widget. Here is a copy of what I recently posted to python-list. --- Most Python installations have tkinter available. I quickly wrote an absolutely minimal script. import tkinter as tk root = tk.Tk() text = tk.Text() text.pack() root.mainloop() I tested tested the functions and wrote the following. This is a test text entry. Enter and Tab work as expected. The Arrow (Cursor) keys work as expected. CntL-Left and Cntl-Right move a word at time. Home and End move to beginning and end of the line. Cntl-Home and Cntl-Up move to the beginning of the text. Cntl-End and Cntl-Donw move to the end of the text. Shift + cursor movement selects between the begin and end slice positions. PageUp and PageDown are inoperative. Delete and Backspace work as expected. At least on Windows, I can select text and delete, or cut or copy to Clipboard. I can also paste from the clipboard. In otherwords, this is a functional minimal text entry widget. I did not even know about Shift-movement selecting until I tried it. Notepad has this. Thunderbird's text entry does not. I think the above is adequate for most multi-line text entry. In use, a save function would have to be added. A help text with the above info would be good too (Idle needs this). -- Terry Jan Reedy _______________________________________________ IDLE-dev mailing list [email protected] https://mail.python.org/mailman/listinfo/idle-dev