inputdlg

Создайте диалоговое окно, чтобы собрать ввод данных пользователем

Описание

пример

answer = inputdlg(prompt) создает модальное диалоговое окно, содержащее одно или несколько текстовых полей редактирования, и возвращает значения, вводимые пользователем. Возвращаемые значения являются элементами массива ячеек из символьных векторов. Первый элемент массива ячеек соответствует ответу в поле редактирования наверху диалогового окна. Второй элемент соответствует следующему ответу поля редактирования и так далее.

пример

answer = inputdlg(prompt,dlgtitle) задает заголовок для диалогового окна.

пример

answer = inputdlg(prompt,dlgtitle,dims)задает высоту каждого поля редактирования когда dims скалярное значение. Когда dims массив, первое значение в каждом элементе массива устанавливает высоту поля редактирования. Второе значение в каждом элементе массива устанавливает ширину поля редактирования.

пример

answer = inputdlg(prompt,dlgtitle,dims,definput) задает значение по умолчанию для каждого поля редактирования. definput входной параметр должен содержать то же число элементов как prompt.

пример

answer = inputdlg(prompt,dlgtitle,dims,definput,opts)указывает, что диалоговое окно изменяемого размера в горизонтальном направлении когда opts установлен в 'on'. Когда opts структура, она задает, изменяемого размера ли диалоговое окно в горизонтальном направлении, модально ли это, и ли prompt текст интерпретирован.

Примеры

свернуть все

Создайте диалоговое окно, которое содержит два текстовых поля редактирования, чтобы получить входные параметры имени целочисленной и палитры от пользователей.

prompt = {'Enter matrix size:','Enter colormap name:'};
dlgtitle = 'Input';
dims = [1 35];
definput = {'20','hsv'};
answer = inputdlg(prompt,dlgtitle,dims,definput)

Input dialog box with two edits fields for entering matrix size and colormap name. OK and Cancel buttons appear below the edit fields.

Создайте входное диалоговое окно, названное Customer это содержит три поля редактирования различных ширин.

x = inputdlg({'Name','Telephone','Account'},...
              'Customer', [1 50; 1 12; 1 7]); 

Input dialog box with three edit fields of different lengths for entering customer name, telephone number, and account number.

Создайте диалоговое окно, которое использует структуру опций, чтобы представить синтаксис TeX использующего подсказки.

Задайте опции для диалогового окна путем определения:

  • Подсказка, которая включает \theta последовательность символов

  • Диалоговый заголовок

  • Входное значение по умолчанию 30

  • Высота поля редактирования равняется 1 строка текста и ширины равняется 40 символьные модули

  • TeX как интерпретатор

Затем создайте входное диалоговое окно путем определения этих опций.

prompt = {'Enter a value of \theta (in degrees)'};
dlgtitle = 'Theta Value';
definput = {'30'};
dims = [1 40];
opts.Interpreter = 'tex';
answer = inputdlg(prompt,dlgtitle,dims,definput,opts);

Dialog box with one edit field that accepts a value of theta in degrees.

Пользователи могут ввести скалярные или векторные значения в inputdlg текстовые поля редактирования. MATLAB® хранит вход как массив ячеек из символьных векторов. Преобразуйте член входного массива ячеек к номеру, с помощью str2num.

Создайте входное диалоговое окно, которое просит, чтобы пользователи ввели числовые данные.

answer = inputdlg('Enter space-separated numbers:',...
             'Sample', [1 50])

Input dialog box that prompts users to enter space-separated numbers in the edit field.

Предположим, что пользователь вводит 1 2 3 4 -5 6+7, и затем нажимает OK. MATLAB хранит ответ как массив ячеек из символьных векторов – {'1 2 3 4 -5 6+7'}

Использование str2num преобразовывать массив ячеек в цифры.

user_val = str2num(answer{1})
user_val =

     1     2     3     4    -5    13

Входные параметры

свернуть все

Текстовое поле редактирования помечает в виде вектора символов, массива ячеек из символьных векторов или массива строк. Для массивов ячеек и строковых массивов, каждый элемент задает метку поля редактирования. Оба типа массивов задают последовательность от начала до конца полей редактирования в диалоговом окне.

Пример: {'First Name','Last Name'}

Заголовок диалогового окна в виде вектора символов или строкового скаляра.

Пример: 'Data'

Текстовая высота поля редактирования и ширина (размерности) в виде одного из этих значений:

  • Если dims скаляр, затем он задает высоту для всех полей редактирования. Высота является расстоянием между базовыми линиями двух линий текста. Ширина для всех полей редактирования является максимумом, который позволяет диалоговое окно.

  • Если dims вектор-столбец или вектор-строка, затем каждый элемент задает высоту каждого соответствующего поля редактирования от верхней части до нижней части диалогового окна. Ширина для всех полей редактирования является максимумом, который позволяет диалоговое окно.

  • Если dims массив, затем это должен быть размер m-2, где m является количеством подсказок в диалоговом окне. Каждая строка относится к полю редактирования для соответствующей подсказки. Первый столбец задает высоту поля редактирования в линиях текста. Второй столбец задает ширину того поля редактирования в символьных модулях. Ширина символьного модуля равняется ширине буквы x при использовании системного шрифта.

Примечание

За одним исключением высота и ширина полей редактирования не ограничивают сумму текста, который могут ввести пользователи. Когда высота поля редактирования равняется 1, пользователи не могут ввести несколько линий текста.

Пример 2 указывает, что высота каждого поля редактирования в диалоговом окне является двумя линиями текста.

Пример: [1;2] указывает, что высота первого (самого верхнего) поля редактирования является одной линией текста, и высота второго поля редактирования является двумя линиями текста.

Пример: [1 50; 2 10] указывает, что первое (самое верхнее) поле редактирования является одной линией высоко и 50 символьными единицами в ширину и что второе поле редактирования является двумя линиями высоко и 10 символьными единицами в ширину.

Входное значение по умолчанию или значения в виде массива ячеек из символьных векторов или массива строк.

Пример: {'Color','1'}

Настройки диалогового окна, заданные как 'on' или структура. Когда opts установлен в 'on', затем пользователи могут изменить размер диалогового окна в горизонтальном направлении. Когда opts структура, поля структуры задают опции в следующей таблице.

Поле

Значения

Resize

'off' (значение по умолчанию) или 'on'. Если установлено в 'off', затем пользователи не могут изменить размер диалогового окна. Если 'on', затем пользователи могут изменить размер окна горизонтально.

WindowStyle

'modal' (значение по умолчанию) или 'normal'. Если установлено в 'modal', затем пользователи не могут взаимодействовать с другими окнами перед ответом.

Interpreter

'none' (значение по умолчанию) или 'tex'. Если установлено в 'tex', затем подсказка представляется с помощью Техаса. Заголовок диалогового окна не затронут.

Используйте синтаксис TeX, чтобы добавить верхние индексы и индексы, изменить тип шрифта и окрасить и включать специальные символы в prompt текст.

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

МодификаторОписаниеПример
^{ }Верхний индекс'text^{superscript}'
_{ }Индекс'text_{subscript}'
\bfBold font'\bf text'
\itКурсивный шрифт'\it text'
\slНаклонный шрифт (обычно то же самое как курсивный шрифт)'\sl text'
\rmОбычный шрифт'\rm text'
\fontname{specifier}}Название шрифта — Замена specifier с именем семейства шрифтов. Можно использовать это в сочетании с другими модификаторами.'\fontname{Courier} text'
\fontsize{specifier}}Размер шрифта — Замена specifier со значением числового скаляра в модулях точки.'\fontsize{15} text'
\color{specifier}}Цвет шрифта — Замена specifier с одним из этих цветов: red, green, yellowПурпурный, blue, black, whiteсерый, darkGreen, orange, или lightBlue.'\color{magenta} text'
\color[rgb]{specifier}Цвет пользовательского шрифта — Замена specifier с трехэлементным триплетом RGB.'\color[rgb]{0,0.5,0.5} text'

Эта таблица приводит поддерживаемые специальные символы для 'tex' интерпретатор.

Последовательность символовСимволПоследовательность символовСимволПоследовательность символовСимвол

\alpha

α

\upsilon

υ

\sim

~

\angle

\phi

\leq

\ast

*

\chi

χ

\infty

\beta

β

\psi

ψ

\clubsuit

\gamma

γ

\omega

ω

\diamondsuit

\delta

δ

\Gamma

Γ

\heartsuit

\epsilon

ϵ

\Delta

Δ

\spadesuit

\zeta

ζ

\Theta

Θ

\leftrightarrow

\eta

η

\Lambda

Λ

\leftarrow

\theta

θ

\Xi

Ξ

\Leftarrow

\vartheta

ϑ

\Pi

Π

\uparrow

\iota

ι

\Sigma

Σ

\rightarrow

\kappa

κ

\Upsilon

ϒ

\Rightarrow

\lambda

λ

\Phi

Φ

\downarrow

\mu

µ

\Psi

Ψ

\circ

º

\nu

ν

\Omega

Ω

\pm

±

\xi

ξ

\forall

\geq

\pi

π

\exists

\propto

\rho

ρ

\ni

\partial

\sigma

σ

\cong

\bullet

\varsigma

ς

\approx

\div

÷

\tau

τ

\Re

\neq

\equiv

\oplus

\aleph

\Im

\cup

\wp

\otimes

\subseteq

\oslash

\cap

\in

\supseteq

\supset

\lceil

\subset

\int

\cdot

·

\o

ο

\rfloor

\neg

¬

\nabla

\lfloor

\times

x

\ldots

...

\perp

\surd

\prime

´

\wedge

\varpi

ϖ

\0

\rceil

\rangle

\mid

|

\vee

\langle

\copyright

©

Пример: 'on'

Пример: opts.Resize = 'on'

Пример: opts.WindowStyle = 'normal'

Пример: opts.Interpreter = 'tex'

Выходные аргументы

свернуть все

Возвращает массив ячеек из символьных векторов, содержащий один вход на поле редактирования, начинающее с верхней части диалогового окна. Используйте str2num функционируйте, чтобы преобразовать разграниченные пробелом и разграниченные запятой значения в векторы-строки и разграниченные точкой с запятой значения в вектор-столбцы. Для примера смотрите, Преобразуют Вход в Числовые значения.

Если пользователь нажимает кнопку Cancel, чтобы закрыть диалоговое окно, то answer массив пустой ячейки, { }.

Если пользователь нажимает клавишу Return клавиатуры, чтобы закрыть диалоговое окно, то answer значение definput. Если definput не определено, затем answer массив пустой ячейки, { }.

Больше о

свернуть все

Модальное диалоговое окно

Модальное диалоговое окно препятствует тому, чтобы пользователь взаимодействовал с другими окнами MATLAB прежде, чем ответить на диалоговое окно.

Советы

  • Выполнение программы MATLAB продолжается, даже когда модальное входное диалоговое окно активно. Чтобы блокировать выполнение программы, пока пользователь не ответит, используйте uiwait функция.

Пользователи могут ввести скалярные или векторные значения во Входные диалоговые окна. Использование str2num преобразовывать разграниченные пробелом и разграниченные запятой значения в векторы-строки и преобразовывать разграниченные точкой с запятой значения в вектор-столбцы. Например, если answer{1} содержит '1 2 3;4 -5 6+7i', преобразование производит:

input = str2num(answer{1})
input =
   1.0000     2.0000     3.0000
   4.0000    -5.0000     6.0000 + 7.0000i

Смотрите также

|

Представлено до R2006a