python - tkinter:是否可以使用 native Tcl/Tk tklib 的 ctext 小部件?

标签 python tkinter tcl tk-toolkit

我遇到了一个有趣的小部件( source code ),它似乎支持语法突出显示和一堆其他东西。我想在我的 tkinter 应用程序中使用它,但是我不确定这是否完全可能。我知道您可以使用 tkinter.eval() 来评估原始 Tcl/Tk 代码,但我不确定在评估整个源代码/将其放置在某处之后我应该做什么 -如何实例化该小部件并实际使用它?

最佳答案

我碰巧有 ctext 的源代码(它是 tklib 的一部分),因此我可以使用 TCLLIBPATH 环境变量让我的 Tcl 库了解附加包的位置。然后就可以加载了。但是,您需要与 python 进行一些接口(interface)

pat@uknml7167 ~ $ TCLLIBPATH=/opt/src/tklib/modules python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter as tk
>>> root = tk.Tk()
>>> root.tk.call('package','require','ctext')
'3.3'

所以简短的回答是"is"。

有一个 tkribbon 的例子在这个网站上。我确信有更好的使用 native Tk 包的示例。

基于上述内容的快速演示:

class Ctext(tk.Widget):
    def __init__(self, master):
        tk.Widget.__init__(self, master, 'ctext')

ctext = Ctext(root)
ctext.pack(expand=True, fill='both')

tkinter 包装类已上传到 github以及一个小演示脚本。

关于python - tkinter:是否可以使用 native Tcl/Tk tklib 的 ctext 小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47653808/

相关文章:

windows - 为什么tcl期望意外退出?

python - SQLAlchemy MySQL STRAIGHT_JOIN

python - 派生时自动类装饰(或验证)

python - 如何使用箱线图绘制relplot,然后仅绘制seaborn中指定的频率

python - 是否可以选择编辑 Tkinter EntryBox 内的填充?

function - 为什么Tcl变量命令总是返回一个空字符串?

tcl - 快速字符串替换

python - pandas dataframe - 查找具有特定条件的最长连续行

python - 获取 Tkinter 窗口大小

python - 如何定位要销毁的 tkinter 根窗口?