exponenta event banner

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, а затем щелкает ок. 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-by-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'
\color{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 функция для преобразования разделенных пробелом и запятыми значений в векторы строк, а разделенных точкой с запятой - в векторы столбцов. Пример см. в разделе Преобразование входных данных в числовые значения.

Если пользователь нажимает кнопку Отмена, чтобы закрыть диалоговое окно, то 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