使用TouchGFX開發(fā)STM32界面應用之入門篇(三)-- 多屏呈現(xiàn)與MVP框架(2)

【注:這是《TouchGFX入門篇(三)-- 多屏呈現(xiàn)與MVP框架》文章的第二部分吠谢,第一部分請看這里

在上一講中我們已經(jīng)創(chuàng)建了第一個Screen合是、并運行了模擬器來驗證時間參數(shù)能正確配置火窒,下面開始創(chuàng)建第二個Screen:


圖一

這個Screen上有3個控件(英文的叫法:Widget):屏幕中央是數(shù)字顯示的時間甚垦,圍繞時間是一個大小不斷變化的圓唤斓妗(通過動畫來實現(xiàn)長短變化)释液,右上角是一個圖形按鈕----按下后可以調(diào)出時間配置窗口:


圖二

為了添加一個新的Screen,在1 處點擊 + 號敦腔,系統(tǒng)自動在 2 處產(chǎn)生一個Screen均澳,默認名稱為Screen2(實際項目時應由用戶更改為有意義的名稱),然后設置Screen的背景,在 3 處 添加一個Button找前、并配置按鈕的 Released Image 等屬性(略)糟袁,在 4 處添加一個 Text Area,并按上圖右側(cè)所示配置各個屬性躺盛,字體選40px项戴,并且其中的 WILDCARD1 和 WILDCARD2 都需要配置(二者配置相同)。最后添加一個圓弧圖形(Circle控件):


圖三

最后要做的是槽惫,添加有關按鈕的消息響應函數(shù)周叮,使得可以在2個Screen之間來回切換。

先配置Screen1中 Clock 按鈕的動作響應屬性:


圖四

然后是Screen2中 設置 按鈕的屬性:


圖五

界面設計工作告一段落界斜,CTRL+S 保存項目文件仿耽,點擊右下角的 Browse Code ,進入VS編程環(huán)境各薇,編譯项贺、運行,彈出模擬器運行窗口:


圖六

鼠標點擊 Clock 按鈕峭判,應該能切換到第二個屏幕:


圖七

再點擊右上角的 設置 按鈕开缎,應該能切換回第一個屏幕。而且林螃,應該能看到一個“場景切換特效”:首頁屏幕是從底部鉆出來的奕删!有點兒酷吧,哈哈疗认!這是圖五右側(cè)下方 Slide完残、South 兩個參數(shù)起到的轉(zhuǎn)場特效,TouchGFX的功能挺牛的吧横漏。

因為還沒有完善代碼坏怪,在首頁屏幕上點擊各個按鈕時,小時绊茧、分鐘數(shù)值顯示可能是亂的,先不要管他打掘,重要的是2個屏幕能正確切換华畏,就達到了第一步的目的。

下面開始代碼的添加過程:MVP框架模式的實現(xiàn)尊蚁,以及如何在2個Screen之間正確傳遞變量的值亡笑。我用一句話來概括這個高大上的MVP術語:所有數(shù)據(jù)僅能保存在稱為 Model 的類對象(簡單說就是一種文件)中,Presenter是視圖(View)與Model之間的紐帶横朋,View只能通過Presenter來讀取數(shù)據(jù)仑乌。下面用代碼編程的實現(xiàn)來具體說明MVP。找到Model.hpp文件,添加2個私有成員變量 hour 和 minute晰甚,以及訪問(即:讀和寫)這些變量的操作函數(shù)聲明:


圖八

加入對hour和minute變量的初始化:


圖九

前面曾講過衙传,View不能直接讀寫Model中的數(shù)據(jù),必須得通過Presenter來操作厕九,所以先要在Presenter中實現(xiàn)對數(shù)據(jù)的讀寫:


圖十

而在Screen2中也需要用同樣方式訪問Model中數(shù)據(jù)蓖捶,所以在?Screen2Presenter.hpp 中也需要添加跟上面同樣的代碼:


圖十一

最后要做的,是在Screen1和Screen2中讀取hour扁远、minute的初始值俊鱼,以及更新、保存這些變量畅买。對于Screen1并闲,需要在Screen1View.cpp中獲取存儲在Model中的hour、minute的初始數(shù)值谷羞,在Screen1View.hpp中添加小時帝火、分鐘增減按鈕的響應函數(shù)(將hour、minute保存到Model中):


圖十二


圖十三

同樣地洒宝,在Screen2中也需要做類似代碼處理购公,并且先要添加屬于Screen2的變量hour、minute:


圖十四


圖十五

在VC中雁歌,編譯宏浩、運行,在Screen1中調(diào)整小時靠瞎、分鐘的數(shù)值比庄,保存。然后乏盐,切換到Screen2佳窑,應該能正確顯示調(diào)整之后的小時、分鐘:


至此父能,我們完成了2個Screen之間的切換神凑,以及如何在Screen之間傳遞數(shù)據(jù)。只是何吝,這個界面真是太low了 ---- 時間沒有走起來溉委,還有,那個半圓弧顯得怪怪的爱榕。---- 這正是下一節(jié)要做的工作:讓時鐘跑起來瓣喊、讓表盤(就是這個丑丑的圓弧^_^)動起來!請見下節(jié)?黔酥。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末藻三,一起剝皮案震驚了整個濱河市洪橘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌棵帽,老刑警劉巖熄求,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異岖寞,居然都是意外死亡抡四,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門仗谆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來指巡,“玉大人,你說我怎么就攤上這事隶垮≡逖” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵狸吞,是天一觀的道長勉耀。 經(jīng)常有香客問我,道長蹋偏,這世上最難降的妖魔是什么便斥? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮威始,結(jié)果婚禮上枢纠,老公的妹妹穿的比我還像新娘。我一直安慰自己黎棠,他們只是感情好晋渺,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著脓斩,像睡著了一般木西。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上随静,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天八千,我揣著相機與錄音,去河邊找鬼燎猛。 笑死叼丑,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的扛门。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼纵寝,長吁一口氣:“原來是場噩夢啊……” “哼论寨!你這毒婦竟也來了星立?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤葬凳,失蹤者是張志新(化名)和其女友劉穎绰垂,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體火焰,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡劲装,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了昌简。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片占业。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖纯赎,靈堂內(nèi)的尸體忽然破棺而出谦疾,到底是詐尸還是另有隱情,我是刑警寧澤犬金,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布念恍,位于F島的核電站,受9級特大地震影響晚顷,放射性物質(zhì)發(fā)生泄漏峰伙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一该默、第九天 我趴在偏房一處隱蔽的房頂上張望瞳氓。 院中可真熱鬧,春花似錦权均、人聲如沸顿膨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恋沃。三九已至,卻和暖如春必指,著一層夾襖步出監(jiān)牢的瞬間囊咏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工塔橡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留梅割,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓葛家,卻偏偏與公主長得像户辞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子癞谒,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容