0

我現在正在編程一個Matlab GUI,用於每當用戶更改光標位置時訪問軸上光標的當前點。但是,我發現一個奇怪的現象,即隨着GUI對象數量的增加,windowButtonMotionFcn的速度變慢。下面是結果Matlab GUI windowButtonMotionFcn在GUI對象數量變大時變慢

http://i.stack.imgur.com/fwjCK.jpg

我將所有GUI對象作爲默認值,我的工作matlab版的性能是Matlab的2012A。當GUI對象的數量增加時,是否有任何可能的方法來保持windowButtonMotionFcn的速度?

感謝您的關注和幫助。 Myrick

回答

0

我不知道事件handlig是如何在matlab中實現的。然而,看起來合理的是,更多的gui對象會減緩這個過程。想象一下,更多的gui對象需要更多的內存,更多的對象,更多的代碼,更長的列表來搜索......我也體驗到,使用GUIDE創建的GUI通常比手工製作的GUI慢。這並未經過測試,因此未得到確認。但是,當我在GUI中不需要太多的對象時,我通常更喜歡手動創建它們。 GUIDE通常更通用,但在大多數情況下,只有一部分設施被使用。

0

嘗試使用數字的底層Java框架的MouseMovedCallback

jFrame = get(handle(hFig), 'JavaFrame'); try % This works up to R2011a jClient = jFrame.fFigureClient; catch try % This works from R2008b and up, up to HG2 jClient = jFrame.fHG1Client; catch % This works in HG2 jClient = jFrame.fHG2Client; end end jWindow = handle(jClient.getWindow, 'CallbackProperties'); set(jWindow, 'MouseMovedCallback', @matlabCallbackFunction);