35.4 Функции GUI-утилит
Эти функции не реализуют элемент графического интерфейса, но полезны при разработке программ, которые это делают. Функции uiwait, uiresume, и waitfor доступны только с наборами инструментов qt или fltk.
- data = guidata (h)
- guidata (h, data)
-
Запрос или установка пользовательских данных графического интерфейса.
Данные GUI хранятся в дескрипторе окна figure h. Если h не является дескриптором окна figure, то для хранения используются данные родительского окна figure.
data должен быть одиночным объектом, что обычно предпочтительно, если это контейнер данных, такой как массив ячеек или структура, чтобы дополнительные элементы данных можно было легко добавить.
См. также: getappdata, setappdata, get, set, getpref, setpref.
- hdata = guihandles (h)
- hdata = guihandles
-
Возвращает структуру дескрипторов объектов для окна figure, связанного с дескриптором h.
Если дескриптор не указан, используется текущее окно figure, возвращаемое
gcf.Имя поля для каждого элемента hdata берется из свойства
"tag"графического объекта. Если тег пустой, то дескриптор не возвращается. Если несколько графических объектов имеют одинаковый тег, то элемент hdata будет вектором дескрипторов.guihandlesвключает все возможные дескрипторы, включая те, для которых"HandleVisibility"является"off".
- have_window_system ()
-
Возвращает true, если система окон доступна (X11, Windows или Apple OS X), и false в противном случае.
См. также: isguirunning.
- isguirunning ()
-
Возвращает true, если Octave запущена в режиме GUI, и false в противном случае.
См. также: have_window_system.
- movegui
- movegui (h)
- movegui (pos)
- movegui (h, pos)
- movegui (h, event)
- movegui (h, event, pos)
-
Перемещает окно figure, заданное дескриптором h, в положение на экране, определенное pos.
h — дескриптор окна figure или дескриптор графического объекта. В последнем случае используется родительское окно figure. Если не указано, h будет установлен на дескриптор соответствующего окна figure, если выполняется обратный вызов (
gcbf), в противном случае он будет установлен на дескриптор текущего окна figure (gcf).pos — либо числовой вектор из двух значений, либо строка. Если pos — числовой вектор, то он должен иметь вид
[h, v], определяющий горизонтальные и вертикальные смещения окна figure относительно экрана. Положительное значение указывает смещение между левой (или нижней для вертикальной компоненты) стороной экрана и левой (или нижней) стороной окна. Отрицательное значение указывает смещение между правой (или верхней) стороной экрана и правой (или верхней) стороной окна.Возможные значения для pos в виде строки:
north-
Верхний центр экрана.
south-
Нижний центр экрана.
east-
Правый центр экрана.
west-
Левый центр экрана.
northeast-
Верхний правый угол экрана.
northwest-
Верхний левый угол экрана.
southeast-
Нижний правый угол экрана.
southwest-
Нижний левый угол экрана.
center-
Центр экрана.
onscreen (default)Окно будет минимально перемещено, чтобы быть полностью видимым на экране, с дополнительным отступом в 30 пикселей от краев экрана. Это значение по умолчанию, если не указано другое.
event содержит данные события, которые будут проигнорированы. Эта конструкция позволяет вызвать movegui из обратного вызова.
- openvar (name)
Открыть переменную name в графическом редакторе переменных.
- uiwait
- uiwait (h)
- uiwait (h, timeout)
-
Приостановить выполнение программы до тех пор, пока окно figure с дескриптором h не будет удалено или
uiresumeне будет вызвано.Если дескриптор окна figure не указан, используется текущее окно figure. Если дескриптор окна figure недействителен или текущее окно figure отсутствует, функция возвращается немедленно.
Если указан timeout, он определяет количество секунд ожидания удаления окна figure или вызова
uiresume. Значение таймаута должно быть не менее 1. Если указано меньшее значение, выводится предупреждение, и используется значение таймаута 1. Если значение timeout не является целым числом, оно усекается до ближайшего целого в сторону нуля. Если timeout не указан, выполнение программы приостанавливается неопределенно.
- uiresume (h)
-
Возобновить выполнение программы, приостановленное с помощью
uiwait.Дескриптор h должен совпадать с дескриптором, указанным в
uiwait. Если дескриптор недействителен или вызовuiwaitне ожидается для окна figure с дескриптором h, функция ничего не делает.См. также: uiwait.
- waitfor (h)
- waitfor (h, prop)
- waitfor (h, prop, value)
- waitfor (…, "timeout", timeout)
-
Приостановить выполнение текущей программы до тех пор, пока не будет выполнено условие на графическом дескрипторе h.
Пока программа приостановлена, графические события обрабатываются нормально, что позволяет обратным вызовам изменять состояние графических объектов. Эта функция рекурсивна и может быть вызвана из обратного вызова, в то время как другой вызов
waitforожидает в верхнем уровне.В первом варианте выполнение программы приостанавливается до тех пор, пока графический объект h не будет уничтожен. Если графический дескриптор недействителен или если h является корневым графическим дескриптором и свойство prop не было предоставлено, функция возвращается немедленно.
Во втором варианте выполнение приостанавливается до тех пор, пока графический объект не будет уничтожен или свойство с именем prop не будет изменено. Если графический дескриптор недействителен или свойство не существует, функция возвращается немедленно.
В третьем варианте выполнение приостанавливается до тех пор, пока графический объект не будет уничтожен или свойство с именем prop не будет установлено в value. Для сравнения значений свойств используется функция
isequal. Если графический дескриптор недействителен, свойство не существует или свойство уже установлено в value, функция возвращается немедленно.Дополнительный таймаут может быть задан с помощью свойства
"timeout". Это значение таймаута — количество секунд ожидания выполнения условия. timeout должен быть не менее 1. Если указано меньшее значение, выводится предупреждение, и используется значение 1. Если значение таймаута не является целым числом, оно усекается в сторону нуля.Чтобы определить условие на свойстве с именем
"timeout", используйте строку'\timeout'.Во всех случаях нажатие CTRL-C немедленно останавливает выполнение программы.
См. также: waitforbuttonpress, isequal.
© 1996–2022 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v5.2.0/GUI-Utility-Functions.html