gpt4 book ai didi

perl - 在 Perl 中使用 tk 运行重复任务

转载 作者:行者123 更新时间:2023-12-02 09:26:37 24 4
gpt4 key购买 nike

我有一个任务需要通过 perl 中的 gui 持续执行。

该设置由一个文本字段、一个按钮和文本区域组成。当按下该按钮时,系统命令将使用文本字段中的值来重复运行,并将输出显示在文本区域中。

例如,考虑以下代码:使用 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);
}

现在,我想做的是让 Push_button() 子程序每 30 秒左右运行一次,并在文本字段中打印输出。

我研究了repeat()函数,但无法正确运行它。任何帮助将不胜感激。谢谢。

最佳答案

参见Tk::after .

例如,每 30 秒重复执行 push_button() 一次:

$id = $widget->repeat(30 * 1000, \&push_button);

关于perl - 在 Perl 中使用 tk 运行重复任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37384105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com