我糾結了兩個星期是否要寫這一章…最後決定還是要寫一章收尾,來解釋其中的控制項間的數據傳遞問題。
在前五篇中,如果有童鞋跟上了我的思路或者做完了這樣一個gui,會發現還有一個一直避開的遺留問題,就是將歌曲信息從播放鍵里讀取後再在諸如volumeSlider(操控音量的滑動條)或Axes(展示波形)中使用這些歌曲信息時,使用GUIDE時,在很多時候數據是不能直接跨控制項使用的;即會有控制項間的數據傳遞問題。這這篇文章中我將介紹我主要用到的幾種方法。
那麼,
控制項間的數據傳遞有哪些方法呢?
首先是最為簡單粗暴通用的第一種,使用global函數,直接把多個控制項要使用的變數做成全局變數;即在要使用這個變數的控制項的回調函數的開頭都寫上『global+空格+變數名』這個形式的代碼,這個變數就完成了多個控制項間的數據傳遞。我個人在這個項目中就將播放器主體audioplayer做成了全局變數。
- 優點:大概是看起來很方便,加上很方便編寫吧(小項目中)
- 缺點:用專業的話來說,就是「破壞了程序的封裝性」;這種方法中變數的改變牽一髮而動全身,小項目倒無所謂,大項目很容易弄出奇怪的bug...
接下來,我們就要根據所適合的不同情景而介紹不同的方法了;
首先當然是簡單的情景;即我們做的gui只有一個figure時(關於figure的問題見下圖:
TAG:MATLAB | GUI設計 | 音樂播放器(軟體) |