如何将应用程序设计器窗口在屏幕的中心?

155(30天)
你好,我一直在matlab应用程序而设计的,现在问题是,我想把应用程序窗口中心的屏幕上没有设置自己的位置。我想写一些代码,这样每次有人打开应用程序,窗口自动总是在中间。是否有可能和如何实现?
谢谢你!
现在的窗口:
我希望:
没有设置此应用程序的用户:
2的评论
dpb
dpb 2023年4月4日
什么,特别是你试了吗?我看过没有问题在使用< movegui >的预设位置当我试过;然而,正如已经提到的,所有我构建的应用程序似乎工作得很好答案我给信奉的理念,让第一个使用应用程序在默认位置,然后保存和恢复的位置作为用户离开它前面的时候返回。每个用户都具有自己的一组usersettings如果应用程序共享,取决于用户的登录名。
向我们展示一个例子审判程序启动代码,“不工作”,然后定义意味着什么,特别。

登录置评。

接受的答案

dpb
dpb 2022年6月23日
编辑:dpb 2022年6月23日
当你 可以 这样使用 .ScreenSize .MonitorPositions 属性检索从 大的 ,我会说很粗鲁,非常任性的让你的应用程序出现在用户的屏幕的中间不管他们的偏好。
这将是更好的让它最初默认(*)然后保存在关闭位置 usersettings 数据结构并重新加载在去年在随后的打开位置。每个用户获得/保持自己的屏幕空间。
(*),或者添加一个用户首选项的菜单,让用户选择一个给定的一般位置——“西北”、“东北”,等等,…像什么 传说 对的选择。就不要坚持你的应用必须自己屏幕的中间。
3评论
Adee
Adee 2022年11月6日
我认为需要设置初始位置地方具体来自这样一个事实:初始位置在像素单元(appdesigner是硬编码的 createcomponent) 根据窗口大小,它可能不是适合所有用户。
程序员可能有一个巨大的显示屏,并相应地设置初始坐标。appdesigner不检查生成的代码显示尺寸在执行应用程序时(功能期待?),如果用户有一个较小的显示、窗口可能部分或完全显示。移动这样的窗户是可能的,但很痛苦,很多用户不知道如何。它不会粗鲁或自私自利的帮助这些用户。
最初的位置可以改变在appdesigner窗口属性,但似乎appdesigner不允许改变单位规范化。期待另一个特点?

登录置评。

更多的答案(2)

Adee
Adee 2022年11月6日
编辑:Adee 2022年11月6日
可以使用内置函数movegui。
movegui(图,“中心”)
将这一数字图的中心当前的显示。其他地方也有可能,看到“doc movegui”。
它也与appdesigner数据。
你可以调用这个函数startupfcn回调。例如,如果您的GUI图叫做main_UIFigure:
函数startupFcn(应用)
movegui (app.main_UIFigure“中心”);
结束

图像分析
图像分析 2022年6月27日
我有一个函数中心屏幕上的GUI。见下文。
%中心屏幕上的数字。
函数CenterFigure(处理)
试一试
%的图位置属性不包括窗口边界,
%这例子使用5像素宽度顶部和底部和30像素。
% borderWidth = 5;
% titleBarWidth = 30;
%保证根单位是像素:
g = groot;
g。单位=“像素”;
%得到像素的屏幕尺寸:
拉= g.ScreenSize;
拉screenWidth = (3);
拉screenHeight = (4);
%得到窗口的大小。
childrenFigure = g.Children;
如果元素个数(childrenFigure) > 1
返回;
结束
childrenFigure。单位=“像素”;
initialFigurePosition = childrenFigure.Position;
%将中心创建一个数组。
centeredX = (screenWidth - initialFigurePosition (3)) / 2;
centeredY = (screenHeight - initialFigurePosition (4)) / 2;
centeredPosition = [centeredX,
centeredY,
initialFigurePosition (3),
initialFigurePosition (4)];
%为中心坐标发送给图实际上导致图。
childrenFigure。位置= centeredPosition;
errorMessage = sprintf (错误的程序% s, % s()函数,行% d。\ n \ nError信息:\ n % s’,
mfilename ME.stack (1) . name, ME.stack (1)。线,ME.message);
uiwait (errordlg (errorMessage));
返回;
结束
返回;从CenterFigure () %

类别

找到更多的在启动和关闭帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!