• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            簡(jiǎn)易定時(shí)器設(shè)計(jì)

            需求:

                  要運(yùn)用番茄時(shí)間管理,沒有像文中所說的定時(shí)器,用手機(jī)也怎么方便,因?yàn)楸旧砭徒?jīng)常是在計(jì)算機(jī)前工作學(xué)習(xí)的。那么下一個(gè)軟件呢?有那么一款PomoTime,既包含了定時(shí)的功能,又含有添加Todolist,統(tǒng)計(jì)當(dāng)天的番茄時(shí)間等的功能,而我僅僅需要一個(gè)定時(shí)功能,因?yàn)閷?duì)于Todolist還是希望采用紙筆的方式進(jìn)行記錄。原來嘗試看桌面右下角的時(shí)間,還判斷一個(gè)番茄時(shí)間是否結(jié)束,發(fā)現(xiàn)工作中,往往因?yàn)檫^于集中注意力或分散注意力瀏覽網(wǎng)頁(yè)去了而忘記對(duì)時(shí)間的查看,同時(shí)又想將自己所學(xué)的知識(shí)進(jìn)行運(yùn)用,于是想到了這么個(gè)方式,自己編寫一個(gè)簡(jiǎn)易的定時(shí)器吧。

            功能描述:

            1. 顯示分,秒,處于桌面最前面;

            2. 設(shè)定分,秒;

            3. 當(dāng)設(shè)定的時(shí)間消耗完后會(huì)彈出對(duì)話框,進(jìn)行提醒;

            (這里沒有采用聲音提醒的原因是若采用這種方式,會(huì)影響到別人的辦公與學(xué)習(xí)。)

            語(yǔ)言選擇:

            由于這僅僅是一個(gè)很簡(jiǎn)單的功能實(shí)現(xiàn),對(duì)于語(yǔ)言沒有很大的要求,選擇了C++,庫(kù)為wxWidget。

            界面設(shè)計(jì):

            使用wxFormBuilder

            關(guān)鍵點(diǎn)描述:

                在整個(gè)過程中遇到的問題的地方時(shí),如何進(jìn)行倒計(jì)時(shí)?最先想到的就是onTimer這樣類似的功能,在wxWidget庫(kù)中找到了具有該功能的wxTimer類,在手冊(cè)中這么一句話 its precision is platform-dependent, but in general will not be better than 1ms nor worse than 1s. 也就是說采用該方法進(jìn)行時(shí)間設(shè)定可能每一次都會(huì)造成1ms-1s時(shí)間上的誤差,這個(gè)誤差不是很大,對(duì)于整個(gè)的設(shè)計(jì)目的并沒有太大的影響。

                全部源碼在Simple timer source code

                關(guān)于時(shí)間處理的部分代碼如下:

               1: // timer_app.h
               2: ////////////////////////////////////////////////////////////////////////////////
               3: // main application frame declaration
               4: ////////////////////////////////////////////////////////////////////////////////
               5:  
               6: class TimerFrame : public MainDialogBase
               7: {
               8: public:
               9:     TimerFrame( wxWindow *parent );
              10:     virtual ~TimerFrame();
              11:  
              12: protected:
              13:     // protected event handlers
              14:     virtual void OnCloseDialog( wxCloseEvent& event );
              15:     virtual void OnSetButtonClick( wxCommandEvent& event );
              16:     virtual void OnStartButtonClick( wxCommandEvent& event );
              17:     
              18: public:
              19:     void OnTimer( wxTimerEvent& event );
              20:     
              21: private:
              22:     int m_minute;
              23:     int m_second;
              24:     wxTimer *m_clock;
              25:     wxDECLARE_EVENT_TABLE();    
              26: };
              27:  
              28: // timer_app.cpp
              29: // event list, combine timer event with OnTimer function
              30: wxBEGIN_EVENT_TABLE(TimerFrame, MainDialogBase)
              31: EVT_TIMER(TIMER_ID, TimerFrame::OnTimer)
              32: wxEND_EVENT_TABLE()
              33:  
              34: //......some code......
              35:  
              36: TimerFrame::TimerFrame(wxWindow *parent) : MainDialogBase( parent )
              37: {
              38:     m_clock = new wxTimer();               // create a new wxTimer
              39:     m_clock->SetOwner(this, TIMER_ID);     // set owner, #define TIMER_ID 1000
              40:     m_minute = 25;
              41:     m_second = 0;
              42: }
              43:  
              44: //......some code......
              45:  
              46: // count down the time and show
              47: void TimerFrame::OnTimer(wxTimerEvent& event)
              48: {
              49:     // determine the minute and second wait to show
              50:     if (m_second == 0 && m_minute == 0) {
              51:         m_clock->Stop();
              52:         wxMessageBox(wxT("Time over"),wxT("Timer"));
              53:         return;
              54:     } else if (m_second ==0) {
              55:         m_second = 59;
              56:         m_minute -= 1;
              57:     } else {
              58:         m_second -= 1;
              59:     }
              60:     wxString sTmp;
              61:     sTmp.Printf(wxT("%d"),m_minute);
              62:     m_minuteTextCtrl->SetValue(sTmp);
              63:     sTmp.Printf(wxT("%d"),m_second);
              64:     m_secondTextCtrl->SetValue(sTmp);
              65: }
              66:  

            posted on 2012-06-28 15:35 鐘謝偉 閱讀(1440) 評(píng)論(3)  編輯 收藏 引用

            評(píng)論

            # re: 簡(jiǎn)易定時(shí)器設(shè)計(jì)[未登錄] 2012-06-30 18:16 春秋十二月

            乍一看標(biāo)題還以為是講定里器的原理、設(shè)計(jì)及實(shí)現(xiàn),以前寫過應(yīng)用層的定里器,底層的數(shù)據(jù)結(jié)構(gòu)可以是數(shù)組、堆、哈希、鏈表,性能各不一樣,可據(jù)需求選擇。  回復(fù)  更多評(píng)論   

            # re: 簡(jiǎn)易定時(shí)器設(shè)計(jì) 2012-06-30 20:02 鐘謝偉

            @春秋十二月
            額 躺著中中槍,成標(biāo)題黨了,對(duì)于定時(shí)器在學(xué)習(xí)數(shù)電的時(shí)候用電路圖搭過電路,想必學(xué)過的都有這么個(gè)實(shí)驗(yàn),不過對(duì)于深層的原理真不清楚,請(qǐng)問曾寫過的內(nèi)容在網(wǎng)上有沒有可尋之處呢,給個(gè)網(wǎng)址。。謝謝  回復(fù)  更多評(píng)論   

            # re: 簡(jiǎn)易定時(shí)器設(shè)計(jì)[未登錄] 2012-07-01 01:00 春秋十二月

            ace,boost,linux kernel都有實(shí)現(xiàn)源碼,可以研究下。  回復(fù)  更多評(píng)論   


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            <2013年6月>
            2627282930311
            2345678
            9101112131415
            16171819202122
            23242526272829
            30123456

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(1)

            隨筆檔案

            IT網(wǎng)站

            My Friends

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久综合狠狠综合久久激情 | 久久综合亚洲色一区二区三区| 亚洲国产精品无码久久久不卡 | 精品久久久久成人码免费动漫| 国产精品久久久久jk制服| 久久人人添人人爽添人人片牛牛| 精品久久久久久无码国产| 99久久伊人精品综合观看| 亚洲午夜精品久久久久久人妖| 日韩精品国产自在久久现线拍| 久久精品国产精品青草| 狠狠狠色丁香婷婷综合久久五月| 久久九九精品99国产精品| 亚洲va中文字幕无码久久| 久久久婷婷五月亚洲97号色| 久久精品蜜芽亚洲国产AV| 99久久国语露脸精品国产| 99久久婷婷国产综合精品草原 | 欧美午夜A∨大片久久 | 国产成人99久久亚洲综合精品| 久久精品国产亚洲一区二区三区| 久久最新免费视频| 久久精品国产久精国产一老狼| 久久久久人妻一区精品性色av| 久久99精品国产99久久| 女同久久| 亚洲国产精品18久久久久久| 久久精品国产91久久综合麻豆自制| 国产精品伊人久久伊人电影| 亚洲午夜久久久| 91久久精品91久久性色| 久久精品国产色蜜蜜麻豆| 亚洲中文字幕无码久久精品1| 2021少妇久久久久久久久久| 久久久久亚洲AV无码去区首| 婷婷综合久久中文字幕蜜桃三电影| 青青草国产精品久久久久| 久久久久久久综合狠狠综合| 色噜噜狠狠先锋影音久久| 久久精品中文字幕一区| 九九久久精品国产|