Я пишу сценарий, помогающий людям, которые сканируют штрих-код и получат ответ, чтобы сохранить или удалить отсканированный образец. Я хочу иметь сообщение, похожее на текстовый ящик tk или Win32 :: MsgBox, но тот, который не требует от пользователя взаимодействия через три секунды.Pop up in perl, который автоматически исчезает после паузы
ответ
Моя мысль заключалась в том, чтобы создать сообщения в дочернем процессе, используя alarm
, чтобы убить процесс после задержки. В Tk:
sub tmpMsgBox {
my ($message,$delay) = @_;
if (fork() == 0) {
my $topWin = MainWindow->new;
my $label = $topWin->Label();
my $ok = $topWin->Button();
$label->pack(-side => 'top');
$ok->pack(-side => 'bottom');
$label->configure(-text => $message);
$ok->configure(-text => 'Ok', -command => sub {exit});
$SIG{ALRM} = sub {exit};
alarm $delay || 1;
$topWin->MainLoop;
}
}
for (3..10) {
tmpMsgBox("This window will disappear in $_ seconds", $_);
}
Я не думаю, что Ки играют хорошо с fork
, хотя, так что эта идея, вероятно, не будет работать так хорошо, если вы также используете Tk
в основном процессе.
Desktop::Notify - это стандартно-совместимый интерфейс к всплывающим всплывающим уведомлениям на рабочем столе.
perl -MDesktop::Notify -e'
Desktop::Notify
->new
->create(
body => q{why hello there},
timeout => 3000
)->show'
То, что вы хотите сделать, это отправить сообщение уничтожить в окно после тайм-аута (напомним, чтобы отменить отправку сообщения, если пользователь делает выбор что-то!) Tk, безусловно, способны сделать это.
# Make the timeout something like this...
$id = $widget->after(3000, sub {
$widget->destroy;
});
# To cancel, just do...
$id->cancel;
Вам также необходимо убедиться, что вы не блокируете, когда виджет вынужден уходить, конечно. Это также предотвращает проблемы, если кто-то убивает виджет другими средствами, так что это двойной бонус.
- 1. JQuery Dialog Pop up исчезает
- 2. javascript pop-up in firefox
- 3. jquery button in pop up
- 4. vwnt pop up in smalltalk
- 5. Pop-up windowa in Polymer
- 6. Bxslider in pop up div
- 7. UIPickerView Pop-Up
- 8. On Click Pop up in input field
- 9. Django render template in pop-up
- 10. Pop up to save image in asp.net
- 11. Pop up Button in view based NSTableView
- 12. show pop up GridView in Yii2
- 13. no activeX pop-up in IE
- 14. Facebook Pop up issue - iOS
- 15. Gui busy pop up
- 16. mouse hover pop up
- 17. Настройки «pop-up» WPF
- 18. UIImagePickerController loading bar/pop up после использования
- 19. Angularjs - Modal pop up
- 20. Eclipse pop-up javadoc
- 21. Click Anywhere Pop Up
- 22. jQuery pop up problems
- 23. Таблица умножения Pop Up
- 24. Автоматическое Javascript Video Pop-Up
- 25. Stop Video Pop Up, показывающий похожие видео
- 26. Поиск Виджет Pop UP
- 27. Snake pop(): он исчезает
- 28. WP7 - MessageBox, который автоматически исчезает
- 29. Пользовательский eCommerce Pop-Up?
- 30. JavaScript Pop Up Выпуск