Perl Linux中带按钮的通知窗口
我有一个Perl脚本,它侦听端口并过滤消息,并根据它们建议采取措施或忽略事件 我想让它显示一个通知窗口(不是对话窗口),带有按钮“采取行动”和“忽略”,这将在某个超时后出现 到目前为止,我有这样的想法:Perl Linux中带按钮的通知窗口,perl,notifications,xorg,Perl,Notifications,Xorg,我有一个Perl脚本,它侦听端口并过滤消息,并根据它们建议采取措施或忽略事件 我想让它显示一个通知窗口(不是对话窗口),带有按钮“采取行动”和“忽略”,这将在某个超时后出现 到目前为止,我有这样的想法: my @react = ("somecommand", "someoptions); # based on what regex a message matched my $cmd = "xmessage"; my $cmd_args = "-print -timeout 7 -buttons
my @react = ("somecommand", "someoptions); # based on what regex a message matched
my $cmd = "xmessage";
my $cmd_args = "-print -timeout 7 -buttons React,Dismiss $message"; # raw message from port
open XMSG, "$cmd $cmd_args |";
while (<XMSG>) {
if ($_ eq "React\n") {
do something...
}
}
my@react=(“somecommand”,“someoptions”)#基于消息匹配的正则表达式
我的$cmd=“xmessage”;
my$cmd_args=“-print-timeout 7-按钮反应,解除$message”#来自端口的原始消息
打开XMSG,“$cmd$cmd|u参数”;
而(){
如果($\uEQ“反应\n”){
做点什么。。。
}
}
但它一次只能处理一个通知,而下一条消息在前一条消息被撤销、响应或超时之前不会出现,因此这是一个非常糟糕的决定。在从xmessage获得返回代码之前,我无法执行任何操作,并且我无法让xmessage运行命令。如果我引入事件ID并侦听sock,我可能可以et在哪里打印xmessage,但我想这会使事情变得太复杂
因此,我想知道Linux是否有一个库或实用程序可以像windows那样绘制通知,每个窗口都有按钮,每个按钮都会触发一个命令?如果有人感兴趣,我最后为此编写了一个小Tcl/Tk程序,完整的代码(全部48行)可以在这里找到:,您可以忽略它周围的俄语文本。很抱歉,我在第一次发布时没有看到这篇文章。有几个gui工具包可以实现这些功能。它是专门为Perl构建的工具包,没有外部库依赖项
当您只需要弹出对话框时,有一个模块可以将弹出窗口的任务委托给任何可用的库。您可以使用fork或调用其他脚本来控制窗口。是的。但我也希望将所有交互传递给窗口。例如,脚本调用
mywindowlib-按钮foo-命令$bar-超时3
并进一步发挥作用。问题是,mywindowlib
的功能可能会起作用。这是现有对话框工具的统一接口,这不是必需的,也可能无法解决问题。无论如何,我已经编写了一个Tk程序包,它正是我想要的方式,我想知道是否应该将其作为一个答案发布。这是一个我从未听说过的很好的库例如,不确定是否有办法像在Tk中那样设置窗口类型。