inputdlg

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

Описание

пример

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

пример

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

пример

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

пример

answer = inputdlg(prompt,dlgtitle,dims,definput) задает значение по умолчанию для каждого поля редактирования. The 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. Диалоговое окно заголовка не затронуто.

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

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

МодификаторОписаниеПример
^{ }Верхний индекс'text^{superscript}'
_{ }Индекс'text_{subscript}'
\bfПолужирный шрифт'\bf text'
\itИталический шрифт'\it text'
\slКосой шрифт (обычно тот же, что и курсивный шрифт)'\sl text'
\rmОбычный шрифт'\rm text'
\ fontname {specifier}Название шрифта - Заменить specifier с именем семейства шрифтов. Это можно использовать в сочетании с другими модификаторами.'\fontname{Courier} text'
\ fontsize {specifier}Размер шрифта - Заменить specifier с числовым скаляром значением в модули точек.'\fontsize{15} text'
\ цвет {specifier}Цвет шрифта - Заменить specifier с одним из следующих цветов: red, green, yellow, magenta, blue, black, white, gray, 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 - пустой массив ячеек, { }.

Подробнее о

свернуть все

Диалоговое окно Modal

Модальное диалоговое окно препятствует взаимодействию пользователя с другими окнами MATLAB перед ответом на диалоговое окно.

Совет

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

Пользователи могут вводить скалярные или векторные значения в диалоговые окна Input. Использовать 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