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
IDLE-dev@python.org
https://mail.python.org/mailman/listinfo/idle-dev

Reply via email to