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