小编fne*_*ery的帖子

MATLAB:自动调整GUI组件/字体的大小

我在尝试使我的MATLAB GUI 自动调整大小时遇到了问题.在彻底搜索网络寻求帮助和大量测试之后,我找不到解决方案.

我一直在笔记本电脑中开发一个简单的GUI(使用MATLAB,不使用GUIDE)(屏幕尺寸/分辨率= 1366x768).一个非常简化的版本如下所示:

GUI显示在笔记本电脑中

当我在台式计算机中运行相同的GUI(屏幕大小/分辨率= 1920x1080)时,它以下列方式显示:

GUI显示在桌面上

GUI的尺寸会在考虑屏幕尺寸的情况下自动初始化(代码在本文的底部提供).如您所见(红色箭头突出显示),组件之间的字体/间距不会自动调整大小,因此无论我们在何处运行文件,GUI都具有相同的方面.

此外,当手动调整GUI大小时,会出现一些组件重叠:

桌面上显示的GUI  - 手动调整大小后


用于此最小工作示例的代码如下:

function resizingGUIexample()

%% SET UP GUI
hdl.mainfig = figure(); 

% MANAGE FIGURE DIMENSIONS -------------------------------------------------------------------------------------
set(hdl.mainfig, 'Units', 'pixels');
dims              = get(0, 'ScreenSize');
screenHeight      = dims(4);
verticalMargins   = floor((0.2*screenHeight)/2);          % =10% of the screen height in each side
figureHeight      =       (0.8*screenHeight);
figureWidth       =       (0.8*screenHeight)*(4/3);       % 4/3 Aspect Ratio
set(hdl.mainfig, 'Position', [0, verticalMargins, ... 
                figureWidth, figureHeight]);

movegui(hdl.mainfig,'center')     % move GUI to center

color = …
Run Code Online (Sandbox Code Playgroud)

matlab user-interface resize screen-resolution

11
推荐指数
2
解决办法
2万
查看次数

MATLAB:GUI逐渐变慢

我一直在编写一些MATLAB GUI(不使用GUIDE),主要用于查看图像和其他一些简单的操作(例如选择点和绘制图像中的一些数据).

GUI启动时,所有操作都会快速执行.但是,由于使用了GUI(显示了来自3D/4D卷的不同帧并执行了上述操作),因此它开始变得越来越慢,达到了普通使用速度太慢的程度.

我想听听一些有关以下方面的意见:

  • 找出GUI变慢的原因的可能策略;
  • 良好的MATLAB GUI编程实践可以避免这种情况;
  • 解决这些问题的可能参考.

我正在使用set/getappdata将变量保存在GUI的主图中并在函数之间进行通信.

(我希望我能提供一个最小的工作示例,但我不认为它适用于这种情况,因为这只发生在更复杂的GUI中.)

非常感谢.

编辑:( 使用探查器报告一些调查结果:)

我曾两次使用剖析器:

  • 启动GUI后立即;
  • 在玩了一段时间之后,直到它开始变得太慢.

我在两个分析操作中都执行了完全相同的过程,这只是简单地在GUI周围移动鼠标(两次都是相同的"路径").

分析器结果如下:

在此输入图像描述

我在解释这些结果时遇到了困难......为什么impixelinfo在第二种情况下某些函数(如)的调用次数如此之大?

任何意见?

非常感谢.

performance matlab user-interface

8
推荐指数
1
解决办法
5293
查看次数