教 程 目 录
Tcl/Tk教程
Tcl是一种通用的多范式系统编程语言.它是一种脚本语言,旨在为应用程序提供相互通信的能力.另一方面,Tk是一个跨平台的小部件工具包,用于在许多语言中构建GUI.本教程涵盖了各种主题,从Tcl/Tk的基础知识到各种应用程序的范围.
受众
本教程适用于所有人那些正在寻找学习Tcl/Tk起点的人.因此,我们将涵盖初学者和高级用户所需的所有主题.
先决条件
在继续本教程之前,建议您这样做让您了解计算机编程的基本概念.本教程是自包含的,即使您是初学者,也可以学习Tcl/Tk的各种概念.您只需要对使用简单的文本编辑器和命令行有基本的了解.
本文地址:https://itbaoku.cn/tutorial/tcl_tk-index.html
相关问答
如何在ComboBox中配置ListBox组件宽度,以使其适合最长的输入? 小部件宽度本身(条目组件)可能很短,但是我正在寻找一种配置列表框组件比条目宽的方法... 解决方案 这是可能的,但并非没有一点黑客;) 您可以在combobox.tcl中找到combobox的实现(在我的情况下/usr/share/tcltk/tk8.5/ttk/combobox.tcl.在那里,如果您有Combobox set cb [ttk::combobox .cb -state readonly] 并调用它,它创建以下内部小部件结构: $cb.popdown.f.l popdown是单击combobox,f框架和l实际列表框,它包含您的值.为了适合最长的条目,您需要修改popdown toplevel的几何形状. 我们尝试通过将调整大小脚本绑定到combobox上的ButtonPress事件来做到这一点,但是,这是不起作用的,因为默认情况下,绑定按以下顺序处理(puts [bindtags $cb]的输出): .cb TCombobox . all 因此,首先处理了小部件上的事件(.cb),然后是类(TCombobox)上的事件,然后在Toplevel(.)上,最后是绑定到所有窗口小部件的事件. 这意味着,当我们单击ComboBox时,首先执行了调整大小
)
我想在TCL/TK中执行简单的图形例程,例如散点图,X-Y图,直方图.我正在使用TCL/TK 8.5.7.我在TCLER的Wiki中发现,很少有选项,例如 blt TCL/TK 8.5+中不支持 是否有gnuplot的TCL/TK接口或任何可以完成图形的小部件? 请让我知道在TCL/TK中绘制例程的选择. 解决方案 GNUPLOT确实可以产生TCL/TK可以消耗的输出. tcler的Wiki 在此页面上描述了如何(尽管有一些额外的复杂性,因为它正在做动画).这是一个简化的版本: package require Tk eval [exec gnuplot
)
tcl/tk 是脚本脚本的简单方法. 任何人都可以为 button 和a text widtget提供一个很好的例子.按下按钮时,应执行shell命令,然后将输出管道输送到 text widget. 如果您还有其他不错的示例用于有用的任务,请添加它们. 解决方案 这是一个使用filevents的更完整的示例.这将一直自动滚动.出于可用性目的,您可能只想在可见文本的底部(即:如果用户还没有移动卷轴)时自动滚动从再处. package require Tk proc main {} { if {[lsearch -exact [font names] TkDefaultFont] == -1} { # older versions of Tk don't define this font, so pick something # suitable font create TkDefaultFont -family Helvetica -size 12 } # in 8.5 we can use {*} but this will work in earlier versions eval font create TkBoldFont [font actual TkDefaultF
)
我是TCL/TK的初学者,但是我已经需要使用其中的TCL/TK框架部署.App(因为.App需要依靠其自己的TCL/TK版本,而不是MacOS标准和旧的TCL/TK).有人可以将我指向我可以找到预编译框架的地方或有关如何在MacOS上编译它们的分步指南? 半天的搜索在这方面并不是很富有成果.我想我的需求并不是很特别的,因为我看到许多.Apps运送了自己的TCL/TK框架. (PS:我需要从Perl访问这些框架,但这不应该有任何区别.) 解决方案 这是我的构建脚本.您需要进行修改以适合 您的需求. 我对init.tcl进行修改,以便TCL在适当的位置进行搜索 并且不会在MacOS标准位置首先看.这部分 脚本将从TCL/TK 8.7开始中断.它也有一条路径 我的安装非常具体('Darwin 64 TCL Lib'部分). 它不会伤害任何东西,或者您可以修改需求的路径. 我使应用程序可重新定位,以便可以从任何位置运行. 这可能是一个安全问题.建议其他处理 安装后完成,将库路径设置为静态位置. 我个人推荐TCL/TK 8.6.8,但必须与 较早的Xcode版本(我在Sierra上使用Xcode命令行9.2). Macos Mojave正在处理各种错误修复程序. 其他人可能会推荐其他人. 变量: macosxminver:最早的MacOS版本将用于.
)
TCL和TK的版本8.6现在已经销售了大约六个星期.但是,可以从 tcl 中下载的文件具有不同的文件夹结构,并且缺少某些文件,例如tk85.lib(或tk86.lib现在)与Python中的TCL文件夹相比. 我的问题是:如何将TCL和TK更新为Python中的8.6(包括集成到TKINTER中)? Python版本为2.7,操作系统是Windows 7. 解决方案 我认为您应该报告一个错误,并希望下一个2.7版本将 存在 与新版本的TK 链接 (假设您有任何真正的理由首先需要新版本.)
)
我正在尝试在Redhat 5: 上安装TCL/TK作为常规用户 TCL_VERSION=8.6.1 BASE_PATH=/myownpath tar -xzf tcl${TCL_VERSION}-src.tar.gz cd tcl${TCL_VERSION}/unix ./configure \ --prefix=${BASE_PATH} \ --without-tzdata \ --enable-64bit make -j9 sed -e "s@^\(TCL_SRC_DIR='\).*@\1${BASE_PATH}'@" \ -e "/TCL_B/s@='\(-L\)\?.*unix@='\1${BASE_PATH}/lib@" \ -i tclConfig.sh make install make install-private-headers chmod -v 755 ${BASE_PATH}/lib/libtcl*.so 到目前为止很好:$ {base_path}/include/tcl.h存在,$ {base_path}/lib/tclconfig.sh看起来很好: # String to pass to the compiler so that an extension can # find installed T
)