![](/img/trans.png)
[英]I want to print my all excel data in new tkinter window using python
[英]I want to embed python console in my tkinter window.. How can i do it?
我正在制作文本编辑器,并希望在我的应用程序中添加IDLE功能。 所以我想要一个嵌入了python IDLE的框架,其中包含原始python IDLE提供的所有菜单和功能。
我查看了空闲lib的源代码,但无法找到解决方案。
try:
import idlelib.pyshell
except ImportError:
# IDLE is not installed, but maybe pyshell is on sys.path:
from . import pyshell
import os
idledir = os.path.dirname(os.path.abspath(pyshell.__file__))
if idledir != os.getcwd():
# We're not in the IDLE directory, help the subprocess find run.py
pypath = os.environ.get('PYTHONPATH', '')
if pypath:
os.environ['PYTHONPATH'] = pypath + ':' + idledir
else:
os.environ['PYTHONPATH'] = idledir
pyshell.main()
else:
idlelib.pyshell.main()
这段代码是在所有python安装的idlelib文件夹下找到的pyshell.pyw
我搜索了idle.pyw,发现它使用了一个真正的shell程序pyshell。 那么我怎么能嵌入它。
我想要一个嵌入了python IDLE shell的Tkinter框架。请给出代码。 提前致谢。
Stackoverflow不是代码编写服务。 相反,目的是帮助您编写代码。 通常最好是在问一个问题之前写一些代码,但在这种情况下,你在编码之前就被卡住了。
idlelib实现了IDLE。 虽然您可以自由地使用它,但它是私有的,因为代码和接口可以在任何版本中更改,而不会出现通常的反向兼容性约束。 您自己导入并使用idlelib模块。
目前,Shell窗口是具有菜单和框架的Toplevel。 后者有一个文本和垂直滚动条。 无法在框架内(或在另一个Toplevel或root = Tk()内)可视地嵌入Toplevel。 top = Toplevel(myframe)
可以工作,但top
不能在myframe
place
d, pack
ed或grid
ded。
我希望将来能够重构editor.py和pyshell.py,以便将带有菜单的窗口与具有可滚动文本的框架分开。 结果应包括具有parent
作为参数的可嵌入EditorFrame和ShellFrame类。 但那是在未来。
目前,可以使用import idlelib.idle
从python中运行IDLE。 但是,因为它运行mainloop()(在它自己的根目录下),所以它会阻塞并且在所有IDLE窗口关闭之前不会完成。 这可能不是人们想要的。
如果在单独的窗口中运行Shell是可以接受的,可以从python.main中提取运行Shell所需的10-20行。 需要进行一些实验。 如果主应用程序使用tkinter,则此函数应将应用程序的root作为参数,而不是调用mainloop()。
Tcl有Tkcon.tcl。 当每个线程源(意味着运行/执行)Tkcon.tcl时,每个线程都会弹出一个Tk shell / Tk console / tkcon.tcl非常好的调试思路。 并通过线程单独打印消息。 Python有idle.py ...以及如何使用它? 仍然找到了这个例子。 是相同的Tk基地。 为什么找不到合适的例子? 到目前为止......继续寻找......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.