Могла ли книга StyleSheet изменить поведение кода?
Я хотел бы спросить, есть ли у кого-то такие проблемы раньше. У меня есть версия 8.01, на Windows 7, 64 бит. SP1.
Я пытаюсь найти причину сбоя ядра Mathematica при добавлении команды Tooltip [] в код, который я пишу.
В записной книжке есть таблица стилей демонстрации Wolfram (примерная таблица стилей, которую вы используете для демонстрации). Это Манипуляция, все в одной ячейке.
Когда я копирую код в новый блокнот с таблицей стилей по умолчанию, авария исчезает! Я не могу воспроизвести авария в новом ноутбуке.
Никакого изменения кода вообще. Просто скопировал всю ячейку и вложил ее в новый блокнот. Единственное отличие состоит в том, что у него есть таблица стилей демонстрации, а одна - таблица стилей по умолчанию. Когда я меняю лист стили нового ноутбука на Demostration, я замечаю, что всплывающая подсказка не работает так хорошо, как раньше. Когда я использую ноутбук в этом стиле, в тот момент, когда я начинаю перемещать мышь с помощью инструмента, Kernel падает.
Чтобы убедиться, я сделал это несколько раз. Тот же результат. Когда я добавлю всплывающую подсказку [], сбой ядра сразу же, только когда демонстрационная таблица стилей.
Мой вопрос: Кто-нибудь видел такое поведение? Я могу сделать эти два ноутбука доступными, если это нормально.
Я получаю следующее сообщение:
Problem signature:
Problem Event Name: BEX64
Application Name: Mathematica.exe
Application Version: 8.0.31.32201
Application Timestamp: 4d65e0e8
Fault Module Name: StackHash_2766
Fault Module Version: 0.0.0.0
Fault Module Timestamp: 00000000
Exception Offset: 0000000000000001
Exception Code: c0000005
Exception Data: 0000000000000008
OS Version: 6.1.7601.2.1.0.768.3
Locale ID: 1033
Additional Information 1: 2766
Additional Information 2: 2766660d255034f6e73a8cd527b6f51e
Additional Information 3: 8ab7
Additional Information 4: 8ab74987ae95fade363a8e7256e3890f
Я отправил сообщение об ошибке в WRI.
Мой вопрос: кто-нибудь имел такую проблему, когда изменение таблицы стилей может привести к поведению кода по-разному? Почему изменение таблицы стилей вызывает такую проблему?
Обновление 1:
Я смог сделать небольшой пример, который показывает часть проблемы. Я работаю над созданием еще одного небольшого примера, который показывает сам авария. Но этот пример ниже показывает проблему, которая заключается в том, что всплывающая подсказка не работает одинаково, когда таблица стилей является демонстрацией. Во-первых, вот скриншот, бок о бок, тот же код, левый - в таблице стилей по умолчанию, а справа - в стиле демонстрации
(ниже изображения, я вставляю исходный код с инструкциями по воспроизведению проблемы)
![enter image description here]()
Manipulate[
EventHandler[Dynamic[Graphics[
{
Circle[{0,0},1],
[email protected][Text[Style["O",Red,16] ,pt],Style[pt]]
},
ImageSize->250, PlotRange->{{-1,1},{-1,1}}
],ContinuousAction->True],
"MouseDragged":>
( pt=MousePosition["Graphics"] )
],
{{pt,{0,0}},ControlType->None},
TrackedSymbols:> {None},
ContinuousAction->True
]
шаги:
- Вставьте вышеуказанный код в новую таблицу стилей по умолчанию. Перетащите точку, вы должны видеть отображение координат все время, когда вы перетаскиваете точку мышью.
- Файл- > Создать- > Демонстрация, и вставьте тот же код в ячейке Manipulate, где там заменяют небольшой шаблон.
- Теперь сделаем то же самое, перетащите точку. Вы увидите, что всплывающая подсказка НЕ отображается при перетаскивании мыши. он отображается только при удержании мыши в точке над точкой.
в динамике есть другое поведение, которое, похоже, вызывает это, или что-то еще в этом стиле.
Я пробовал разные таблицы стилей, и всплывающая подсказка там хорошо работает. только с таблицей стилей демонстрации. Я получаю эту проблему с помощью всплывающей подсказки.
Если у кого-то есть решение, это будет здорово. Поскольку я хотел бы использовать всплывающую подсказку в демонстрации.
Я попытаюсь сделать пример, который также приведет к сбою.
Update:
Я получил ответ от технической поддержки WRI. Это проблема с таблицей стилей. Между тем, как работа вокруг это предложение от технической поддержки:
I was able to reproduce the kernel crash. It looks like a demonstration
stylesheet issue related to imagesize fit.
At the top of the demonstration notebook there is tab called 'Tools',
clicking on it gives you an option called 'Resize Notebook to Fit'. On
resizing the notebook and saving it the kernel crash does not happen.
Благодаря технической поддержке WRI.
обновление 2 декабря 2011
На основании ответа Джона Фульца ниже, я закрываю этот вопрос сейчас. Спасибо, Джон.
Ответы
Ответ 1
(Этот ответ на самом деле связан с Джоном Фульцем - см. комментарии по оригинальному вопросу. Я превращаю его в ответ, чтобы этот вопрос не появлялся в списке оставшихся без ответа вопросов. Ясно, что на самом деле Джон, который заслуживает любая репутация указывает на это, Джон, если вы разместите здесь ответ, я проголосую и удалю свою.)
Причина, по которой ваша всплывающая подсказка не появляется в демонстрационной версии, заключается в том, что таблица стилей Demonstration
ставит ненулевую задержку во всплывающих подсказках, так что они появляются только после зависания над ними в течение определенного периода времени. В частности, это означает, что они не появятся при перетаскивании.
Вы можете отменить это, установив задержку на ноль на Manipulate
; сделайте это, добавив следующий вызов Manipulate
.
BaseStyle -> {TooltipBoxOptions -> {TooltipDelay->0}}