亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
關(guān)于tk和fork
[打印本頁(yè)]
作者:
demil
時(shí)間:
2010-08-16 14:24
標(biāo)題:
關(guān)于tk和fork
請(qǐng)教各位大俠,我想用tk實(shí)現(xiàn)這樣一個(gè)功能: 點(diǎn)擊button stop后,button的item顯示為start,同時(shí)label中的text停止?jié)L動(dòng)顯示,然后點(diǎn)擊button start,label的text會(huì)繼續(xù)顯示。
以下是我寫(xiě)的, 發(fā)現(xiàn)在tk中fork時(shí),sleep 沒(méi)有生效,而且感覺(jué)變量$but改變也沒(méi)有生效,如果不用fork直接使用信號(hào),那么就會(huì)阻塞,sleep 10s后,button才能改變,而不是按下去就改變,
是什么問(wèn)題呢?關(guān)于進(jìn)程、事件驅(qū)動(dòng)這塊我理解的還不深入,希望學(xué)習(xí)下。
#!/usr/bin/perl
use TK;
my $mw = MainWindow->new;
my $mess = "this is from me ^o^";
my $but = "Stop";
my ($ppid,$pid);
$SIG{'USR1'} = sub {
sleep(10);
};
$ppid = $$;
$mw->Label(-textvariable => \$mess)->pack(-expand => "1");
$mw->after(100,\&scroll);
$mw->Button(
-textvariable => \$but,
-command => sub {
if($but eq "Start") {
$pid = fork();
if ( $pid ==0 ) {
print "start->stop\n";
} else {
wait;
$but = "Stop";
}
} else {
$pid = fork();
if ( $pid ==0 ) {
system("kill -USR1 $ppid");
print "stop->start\n";
} else {
wait;
$but = "Start";
}
}
}
)->pack;
sub scroll {
$mess =~ /(.)(.*)/;
$mess = "$2$1";
$mw->after(100,\&scroll);
}
$mw->MainLoop;
作者:
黑色陽(yáng)光_cu
時(shí)間:
2010-08-16 15:57
#!/bin/env perl
use strict;
use warnings;
use TK;
my $mw = MainWindow->new;
my $mess = "this is from me ^o^";
my $btn_text = "Stop";
my $event_id = undef;
$mw->Label(-textvariable => \$mess)->pack(-expand => "1");
$mw->Button
(
-textvariable => \$btn_text,
-command =>
sub
{
if($btn_text eq "Start")
{
$btn_text = "Stop";
if (defined $event_id)
{
$mw->afterCancel($event_id);
$event_id = undef;
}
$event_id = $mw->repeat(100, \&scroll);
}
else
{
$btn_text = "Start";
if (defined $event_id)
{
$mw->afterCancel($event_id);
$event_id = undef;
}
}
}
)->pack();
$event_id = $mw->repeat(100, \&scroll);
$mw->MainLoop();
#################################################################
sub scroll
{
$mess = substr($mess, 1) . substr($mess, 0, 1);
}
復(fù)制代碼
歡迎光臨 Chinaunix (http://www.72891.cn/)
Powered by Discuz! X3.2