Article View: fj.lang.tcl
Article #213Re: Call for tk widget from C
From: Tomohiko Kurahashi
Date: Thu, 04 Dec 1997 00:00
Date: Thu, 04 Dec 1997 00:00
98 lines
3912 bytes
3912 bytes
$BAR66!wElBg$G$9!#(B
$BA02s$N8f<ALd$r$I$N$h$&$K2r7h$5$l$?$+$,J,$+$j$^$;$s$,!"(B
On Wed Dec 03 1997 23:05:01
shinya@sakata-lab.ee.akita-u.ac.jp wrote in <663oue$3bk$1@tegata.akita-u.ac.jp> :
+ $B$=$NCf$G!$%D!<%k$N30OHItJ,$r@8@.$9$k%k!<%A%s$,$"$j$^$7$F!$$=$3$G30OH$r@8@.$7(B
+ $B$?D>8e$K(Bupdate$B%3%^%s%I$r<B9T$5$;!$$=$N30OHJB$S$K%\%?%s$d%j%9%H%\%C%/%9Ey$N4pK\(B
+ $BE*$J%&%$%8%'%C%H$r2hLL>e$KI=<($5$;$k$N$G$9$,!$$=$3$G@8@.$5$l$?%\%?%s$d%a%K%e!<(B
+ $BEy$r2!$7$?$j3+$+$;$?$j$9$k;v$,=PMh$^$;$s!%DL>o$O(BTk_MainLoop $B$rMQ$$$k$H;W$&$N$G(B
+ $B$9$,!$$3$l$rMQ$$$k$H=hM}$,$=$3$G;_$^$C$F$7$^$&0Y!$$3$NMM$J%D!<%k$K$O;HMQ=PMh$^(B
+ $B$;$s!%(B
Tk_MainLoop() $B$r;H$C$F0J2<$N$h$&$K$9$k$N$O$I$&$G$9$+(B?
+ -------------------------------------------------------------------
+ #include<stdio.h>
+ #include"tcl.h"
+ #include"tk.h"
+
int do_printing;
Tcl_CmdProc testPrint;
+ main(){
+ Tcl_Interp *interp;
+ int code;
+
+ interp = Tcl_CreateInterp();
+
+ if((code = Tcl_Init(interp)) == TCL_ERROR)
+ exit(1);
+ if((code = Tk_Init(interp)) == TCL_ERROR)
+ exit(1);
Tcl_CreateCommand(interp, "test_print", testPrint, NULL, NULL);
if(Tcl_LinkVar(interp, "do_printing", (char *)&do_printing,
TCL_LINK_INT) == TCL_ERROR)
exit(1);
+
+ code = Tcl_EvalFile(interp , "sample");
Tk_MainLoop();
+ exit(0);
+ }
int testPrint(clientdata, interp, argc, argv)
ClientData clientdata;
Tcl_Interp *interp;
int argc;
char **argv;
{
while(do_printing)
{
printf("test flush");
(void)Tcl_UpdateCmd(clientdata, interp, 1, (char **)NULL);
}
strcpy(interp->result, "1");
return TCL_OK;
}
+ ------- "sample"-----------------------------
+ button .b -text testbutton -command exit;
+ pack .b;
set do_printing 1
update
test_print
+ ----------------------------------------------------------------------
$BJV$jCM$NH=DjEy$$$/$D$+>J$$$F$$$k=j$b$"$j$^$9$,!"$3$l$G>r7o$rK~$?$7$F(B
$B$$$k$H;W$$$^$9!#(B
$B<XB-(B: $B!V;d$J$i$3$&$9$k!W%9%/%j%W%H"-(B
------- "sample.tcl"-----------------------------
button .start -text Start -command "set do_printing 1; test_print"
button .stop -text Stop -command "set do_printing 0"
button .exit -text Exit -command exit
pack .start .stop .exit -side left
set do_printing 0
update
----------------------------------------------------------------------
+ $B$3$NMM$K!$(Btcl$B%9%/%j%W%H(B"sample" $B$r(BC$B$NCf$G<B9T$5$;%\%?%s(B.b$B$rI=<($7$?$^$^<!$N=hM}(B
+ ($B>e$NNc$G$O(B printf("test flush"); )$B$r9T$$$?$$$N$G$9$,!$$3$NI=<($5$l$?%\%?%s(B.b$B$r(B
+ $B2!$9;v$,=PMh$^$;$s!%(B
Tk_MainLoop() $B$N30$d!"$"$k%3%^%s%I$N<B9TCf$O!"(B($B0U<1$7$F(B update $B$7$J$$8B$j(B)
$B%$%Y%s%H$r<u$1<h$l$J$$$+$i$@$H;W$$$^$9!#(B
# $B<1<T$N2r@bK>$`(B (^^;)
$BNc$($P85$N%=!<%9$N(B sleep(60) $B$N2U=j$r!"(B
for(code = 0; code < 60; code++){ Tcl_Eval(interp , "update"); sleep(1); }
$B$H$9$k$@$1$G$b!"(B60$BIC0JFb$J$i%\%?%s$r2!$;$k$H;W$$$^$9!#(B
# http://selina.q.t.u-tokyo.ac.jp/~kura/tools/ $B$K@[:n$N%D!<%k0l<0$,CV$$$F(B
# $B$"$j$^$9!#F0:n$5$;$k$K$OFCDj$N4D6-(B($B%O!<%I(B)$B$rI,MW$H$7$^$9$,!";29MDxEY$K$O(B
# $B$J$k$+$H;W$$$^$9$N$G!"$b$7$h$m$7$1$l$P8fMw2<$5$$!#(B
--
$BAR66(B $BCRI'(B E-Mail : kura@melchior.q.t.u-tokyo.ac.jp
Tomohiko Kurahashi HomePage: http://selina.q.t.u-tokyo.ac.jp/~kura/
Technical Details
Message-ID:
<665ele$icp$1@qsecf.q.t.u-tokyo.ac.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<663oue$3bk$1@tegata.akita-u.ac.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 15a83d,a631659735d80e10 X-Google-Attributes: gid15a83d,public From: kura@melchior.q.t.u-tokyo.ac.jp.q.t.u-tokyo.ac.jp (Tomohiko Kurahashi) Subject: Re: Call for tk widget from C Date: 1997/12/04 Message-ID: <665ele$icp$1@qsecf.q.t.u-tokyo.ac.jp> X-Deja-AN: 295078344 References: <663oue$3bk$1@tegata.akita-u.ac.jp> Organization: Nakazawa Lab., University of Tokyo, Japan Newsgroups: fj.lang.tcl