Существует много материалов tk, но ничто из этого не похоже на то, что я хочу сделать ... CreateOk ниже создаст окно сообщения (без другого основного окно) и вернуть результат при нажатии ok. Я хотел бы создать поле, которое ведет себя как поле ok, но запрашивает у пользователя ввод текста и возвращает текст при нажатии кнопки отправки. Я также опубликовал свою попытку ниже.Как создать подсказку с помощью Perl :: tk
sub CreateOk
{
my ($statement, $title) = @_;
my $return;
if (defined($statement))
{
my $main_window = MainWindow->new();
$main_window->withdraw();
$return = $main_window->messageBox(
-title => $title // 'Ok pop-up',
-message => $statement,
-type => 'OK',
-icon => 'question',
);
}
else
{
cluck "No message given for OK pop-up!";
}
return($return);
}
И это моя попытка
sub CreatePrompt
{
my ($question, $title) = @_;
my $pop_up;
if (defined($question))
{
my $main_window = MainWindow->new();
my $winMain = MainWindow->new(
-title => $title // 'User Input',
);
$winMain->Label(
-text => $question
)->pack(-side => 'left');
my $entName = $winMain->Entry(
-textvariable => \$pop_up
);
$entName->pack(-side => 'left');
$winMain->Button(
-text => 'Show',
-command => sub{ close; }
)->pack(-side => 'left');
MainLoop();
}
}
Но это создаст главное окно и всплывающее окно, как я просто создать всплывающее окно, как и раньше?
Почему вы создаете '$ main_window' на всех, если вы не используете? –