2009-05-04 3 views
0

[крест снова отправил в Mahalo ответы]Почему Perl/Tk не протрите мою таблицу?

Мой Perl/Tk script имеет начальную электронную таблицу, как сетка отображается с помощью Tk::TableMatrix::Spreadsheet модулей. Моя таблица программно называется $ss. Эта начальная сетка протирается перед показом первой таблицы, с

$ss->pack('forget'); 

Сценарий, как сейчас также добавляет $mw-> pack('forget');, но это не обязательно.

Мой вопрос заключается в том, как открыть второй файл из файла -> Открыть диалоговое окно, и оно уничтожит первый отображаемый файл, так же, как первый файл уничтожает начальную сетку? В настоящий момент второй файл отображается как полный новый кадр под все еще отображаемой первой таблицей.

Спасибо за помощь заранее.

ответ

1

"pack ('forget')" просто удаляет виджет из представления. Он не удаляет его и не делает ничего с отображаемыми в нем данными. Если вы не можете уничтожить виджет, у вас будет, по сути, большая утечка памяти, поскольку вы создадите все больше виджетов электронных таблиц.

Самое быстрое решение вашей проблемы - уничтожить старый виджет (используя метод destroy) и воссоздать его с новыми данными. Другое решение - сохранить виджет, но использовать deleteRows(), чтобы удалить все существующие данные, прежде чем вставлять данные для нового файла.

 Смежные вопросы

  • Нет связанных вопросов^_^