Я думаю, что самым простым способом было бы использовать movegui в OpeningFcn
вашего графического интерфейса с соответствующим аргументом, то есть с использованием «северного», «северо-восточного» или «северо-западного».
Вызывающий синтаксис довольно прост, используя ручки для созданной фигуры. В GUIDE, имя по умолчанию для фигур «Figure1», так что в вашем случае код будет выглядеть следующим образом (если вы не меняли название фигуры):
movegui(handles.figure1,'northwest') %// or whatever
Обратите внимание, что movegui
вызывает следующие 3 функции, чтобы получить размер экрана и монитор позиция/единицы:
screensize = get(0, 'ScreenSize');
monitors = get(0,'MonitorPositions');
old0units = get(0, 'Units');
Таким образом, вы могли бы сделать то же самое, чтобы сделать расчеты самостоятельно, чтобы поместить фигуру именно там, где вы хотите, если указанное решение не является достаточным для вас.
Это хорошо, но он оставляет зазор между верхним и левым краем. Как я могу точно установить позицию? Я попытался установить hObject.Position (2), но он не делает то, что я хочу. –
Вы используете выпуск старше, чем R2014? Если это так, это какая-то ошибка. Проверьте [здесь] (https://www.mathworks.com/matlabcentral/newsreader/view_thread/161639) для обходного пути. Я добавлю его в ответ, если он сработает для вас –
, поэтому @DougNull какое-либо обновление по вашей проблеме? –