Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从另一个打开tcl程序_Tcl_Tk - Fatal编程技术网

从另一个打开tcl程序

从另一个打开tcl程序,tcl,tk,Tcl,Tk,我有一个tcl应用程序,我想从另一个tcl应用程序打开它。当我打开它时,打开的应用程序会出现在主应用程序中,在它的四分之一上方。有人知道如何将打开的应用程序显示为单独的窗口吗 我想这可能与WM窗口有关 如果使用source命令,就不会真正启动另一个应用程序。您只是将其他代码加载到现有应用程序中。要实际启动另一个应用程序,您可以使用exec tclsh otherapp.tcl 如Glenn所述,要在同一解释器中获取两个文件时获得两个单独的窗口,它们应该使用单独的顶层 如果您不想修改正在查找的文件

我有一个tcl应用程序,我想从另一个tcl应用程序打开它。当我打开它时,打开的应用程序会出现在主应用程序中,在它的四分之一上方。有人知道如何将打开的应用程序显示为单独的窗口吗


我想这可能与WM窗口有关

如果使用source命令,就不会真正启动另一个应用程序。您只是将其他代码加载到现有应用程序中。要实际启动另一个应用程序,您可以使用exec tclsh otherapp.tcl

如Glenn所述,要在同一解释器中获取两个文件时获得两个单独的窗口,它们应该使用单独的顶层

如果您不想修改正在查找的文件,另一种可能是将每个文件加载到它们自己的解释器中

interp create app2
app2 eval {source otherapp.tcl}

当您想使用此技术时,请确保您的应用程序文件包含
package require Tk

第二个应用程序是否使用
toplevel
命令?或者它只是使用
作为顶级窗口的名称?如何“打开”它?第二个应用程序由3个LabelFrame(.rs、.bs和.ss)组成,其中包含小部件,即rs.label、.bs.checkbutton。这些LabelFrame正在打包(或放置)到第一个应用程序的顶级窗口中——您需要将它们放入新的顶级窗口中。