버튼을 클릭하면서 외부 명령을 실행할 수있는 Perl + Tkx로 인터페이스를 만들려고합니다.GUI를 차단하지 않고 Perl/Tkx에서 외부 명령 실행 (Windows)
Tk 모듈로 진행하는 방법에 대해서는 많은 문서가 있지만 Tkx에서는 거의 다루지 않습니다.
나는 여전히 this one과 같은 몇 가지를 발견했지만, 내 예제에서는 제대로 작동하지 않습니다. 특히 게시물에는 Tkx :: open, Tkx :: configure 및 Tkx :: fileevent의 사용이 포함되어 있지만 이들을 함께 결합하는 방법을 알지 못했습니다.
다음은 내가 시도하는 코드입니다. 버튼을 클릭하고 자식 프로세스를 종료하기 위해 키를 누르면, Perl은 오류 Free to wrong pool 16389d0 not 328e448 at C:/Perl/lib/Tcl.pm line 433.
을 반환합니다.
참고 : ActivePerl 5.12.2를 사용하고 있습니다. 이 문제에 거의 이일 지출 후
use Tkx;
use strict;
my $mw = Tkx::widget->new(".");
my $button=$mw->new_ttk__button(-text => "Run", -command => [\&run_cmd, 0]);
$button->g_grid(-column => 0, -row => 0);
my $text = $mw->new_tk__text(-width => 32, -height => 16);
$text->configure(-state => "disabled");
$text->g_grid(-column => 0, -row => 1);
Tkx::MainLoop();
sub run_cmd {
if (fork()==0) {
system "pause";
exit 0;
}
}
감사