2
私はperlでguiを通して継続的に実行する必要があるタスクがあります。perlのtkで繰り返しタスクを実行する
セットアップは、テキストフィールド、ボタン、テキストエリアで構成されています。ボタンを押すと、テキストフィールドの値がシステムコマンドによって繰り返し実行され、出力がテキスト領域に表示されます。
たとえば、次のコードを考えてみましょう。 use Tk;
# Main Window
my $mw = new MainWindow;
#GUI Building Area
my $frm_name = $mw -> Frame();
my $lab = $frm_name -> Label(-text=>"Command");
my $ent = $frm_name -> Entry();
#Button and command
my $ent = $mw -> Entry() -> pack();
my $but = $mw -> Button(-text=>"Run Command", -command =>\&push_button) -> pack();
#Text Area
my $textarea = $mw -> Frame();
my $txt = $textarea -> Text(-width=>40, -height=>10) -> pack();
#Geometry Management
$lab -> grid(-row=>1,-column=>1);
$ent -> grid(-row=>2,-column=>1);
$frm_name -> grid(-row=>1,-column=>1,-rowspan=>2);
$but -> grid(-row=>1,-column=>1,-columnspan=>1);
$txt -> grid(-row=>1,-column=>1);
$textarea -> grid(-row=>5,-column=>1,-columnspan=>2);
MainLoop;
## Functions
#This function will be executed when the button is pushed
sub push_button {
my $name = $ent -> get();
@out = qx($name);
$txt -> insert('end', @out);
}
さて、私が何をしたいのか、30秒毎またはそうPUSH_BUTTON()サブ実行されるようにそれを作るされ、テキストフィールドに出力します。
私はrepeat()関数を調べましたが、正しく実行できませんでした。どんな助けもありがとう。ありがとう。