Диалог манипуляции - PullRequest
       15

Диалог манипуляции

2 голосов
/ 28 сентября 2011

Я хочу создать диалоговое окно, в котором пользователь может выполнять различные задачи, и хотел бы, чтобы он вернулся из диалогового окна, щелкнув мышью по кнопке Отмена (т. Е. Не нажав клавишу Enter).Поэтому я не хочу использовать CreateDialog.Однако при создании менее специфичного диалогового окна через CreateWindow все строки выглядят неформатированными.

expr = Column[{
   Row@{"set variable to: ", InputField["value", String]},
   "Try to hit Enter in any of the dialogs: it closes #2 but not #1.",
   CancelButton[]
   }];

CreateWindow[DialogNotebook[expr], WindowSize -> All, WindowMargins -> {{100, Automatic}, {Automatic, Automatic}}, WindowTitle -> "1. CreateWindow & DialogNotebook"];
CreateDialog[expr, WindowTitle -> "2. CreateDialog"];

dialog windows

Есть ли какой-нибудь умный способ выглядеть как второе диалоговое окноа поведение кнопки первого?Конечно, expr здесь простой пример, но он может быть довольно сложным в реальности, поэтому нет возможности заключить каждую строку в Cell[string, "Text"], а каждое другое выражение в какую-то непонятную рамочную форму.

Ответы [ 4 ]

6 голосов
/ 28 сентября 2011

Это остановит закрытие вашего диалогового окна при нажатии Enter:

CreateDialog[expr, WindowTitle -> "2. CreateDialog", NotebookEventActions -> {}];

Перезаписывает диалоговое окно по умолчанию NotebookEventActions.

2 голосов
/ 28 сентября 2011

Другой вариант:

expr = Style[
   Column[{Row@{"set variable to: ", InputField["value", String]}, 
     "Try to hit Enter in any of the dialogs: it closes #2 but not \
#1.", CancelButton[]}], ShowStringCharacters -> False];
2 голосов
/ 28 сентября 2011

Возможно использование TextCell:

expr = Column[{Row@{TextCell@"set variable to: ", 
                    InputField["value", String]}, 
               TextCell@"Try to hit Enter in any of the dialogs: \
                         it closes #2 but not #1.", 
               CancelButton[]}];

CreateWindow[
 DialogNotebook[expr], WindowSize -> All, 
 WindowMargins -> {{100, Automatic}, {Automatic, Automatic}}, 
 WindowTitle -> "1. CreateWindow & DialogNotebook"]

Редактировать

Использовать

 TextCell@Style[" ... blah blah ...", style_opt ]

для форматирования.

1 голос
/ 28 сентября 2011

Есть несколько способов сделать это, и другие люди опубликовали два хороших, но, на мой взгляд, самый простой подход - установить BaseStyle выражения Column в соответствии с базовым стилем диалога , а затем используйте CreateWindow. Рассматриваемый стиль - "Panel", поэтому вы получите желаемый результат:

expr = Column[{Row@{"set variable to: ", InputField["value", String]},
     "Try to hit Enter in any of the dialogs: it closes #2 but not #1.", 
     CancelButton[]}, BaseStyle -> "Panel"];

CreateWindow[DialogNotebook[expr], WindowSize -> All, 
  WindowMargins -> {{100, Automatic}, {Automatic, Automatic}}, 
  WindowTitle -> "1. CreateWindow & DialogNotebook"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...