iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 29
0
Software Development

從零開始的Python練成記系列 第 29

[Day 29]昨天嗑藥殺腦細胞,今天就必須付出代價...

  • 分享至 

  • xImage
  •  

原文:[Day 28]今天的我吃錯藥了:用GUI介面開發簡易計算機


昨天因為花了將近兩個小時的時間在邊刻視窗外觀模板,邊研究功能與邏輯,結果今天自己在進行Code review的時候就發現很多必須修改的Bug,而今天就來帶大家看看有哪些地方的Bug需要被重視與修正吧:

https://ithelp.ithome.com.tw/upload/images/20191015/20120985ZChtdEgk5y.jpg
上面這張圖是我發現的第一個問題:錯誤的格式,嚴重性大於欄位留白;簡單來說,這個地方的判斷應該是以錯誤的格式做警示,而且目前現行的計算機若面對留白的部分都是以0來處理,所以就要將錯誤格式的判別往前提,然後就要預設的欄位設為0 (也包含自己設計的Clean按鍵)

https://ithelp.ithome.com.tw/upload/images/20191015/20120985xVssLaLbqd.jpg
這則是第二個問題:在沒有按下Clean的情況下手動清出一格欄位,誤觸Result卻出現上次計算的結果;這個地方就可能要留一個基本運算式(我可能會預設為加法),然後做即時的資料運算(這樣就不會是出現上次的資料了)

第三個問題我自己認為應該是沒有記錄使用者輸入紀錄的這個問題,我要如何知道我剛剛到底按了甚麼按鍵,到底是加、減、乘,還是除?

那就逐一來看看如何修改吧!

針對第一個問題的解決方法如下:
https://ithelp.ithome.com.tw/upload/images/20191015/20120985ynlyZ6KesQ.jpg
圖中的A區塊是編寫一個方法來自動補0到空白欄位裡面,這樣就可以避免沒有值在內的問題
(但老實說這個問題只是因為自己沒有編寫Entry的預設值才會導致)
圖中的B區塊(以加法為例)就是在讓程式自動補0的同時再重新運算一次,當然,這個設計也有編寫到其他運算方法之中(特別是除法,有設計一個除數為零的結果無意義的警告視窗)

針對第二個問題的解決方案如下:
https://ithelp.ithome.com.tw/upload/images/20191015/20120985GqyqDWUk0i.jpg
https://ithelp.ithome.com.tw/upload/images/20191015/20120985wQRAqh8JDk.jpg
先對公變數存放區新增一個變數roman來當作判別Result是否已經被觸發(A區塊),之後在按下Result的地方設定if/else來判斷result的觸發於否(B區塊),再來就是按下Clean之後也同時要將roman重置(C區塊)

對於第三個問題的解決方案我就要多想想了,其實也可以透過「用字串來存放紀錄」的方式,再一併顯示於Result的彈出視窗上面

那就先這樣了


上一篇
[Day 28]今天的我吃錯藥了:用GUI介面開發簡易計算機
下一篇
[Day 30]看到這個天數我真的很感動,但還有東西沒結束
系列文
從零開始的Python練成記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言