新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Qt圖形編程基礎之:Qt/Embedded開發入門

        Qt圖形編程基礎之:Qt/Embedded開發入門

        作者: 時間:2013-09-13 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/257103.htm

        圖12.8使用了QGroupBox進行排列的日期類QDateTimeEdit、一個行編輯框類QLine-
        Edit、一個文本編輯類QTextEdit和一個組合框類QComboBox。

        圖12.9是以QGrid排列的一個QDial、一個QProgressBar、一個QSpinBox、一個QScrollBar、一個QLCDNumber和一個QSlider。

        圖12.10是以QGrid排列的一個QIconView、一個QListView、一個QListBox和一個QTable。

             

        圖12.8 QGrid組合圖示1    圖12.9 QGrid組合圖示2 圖12.10鐘表部件圖示

        3.自定義窗口

        開發者可以通過子類化QWidget或它的一個子類創建他們自己的部件或對話框。為了舉例說明子類化,下面提供了數字鐘部件的完整代碼。

        鐘表部件是一個能顯示當前時間并自動更新的LCD。一個冒號分隔符隨秒數的流逝而閃爍,如圖12.10所示。

        Clock從QLCDNumber部件繼承了LCD功能。它有一個典型部件類所擁有的典型構造函數,帶有可選的parent和name參數(如果設置了name參數,測試和調試會更容易)。系統有規律地調用從QObject繼承的timerEvent()函數。

        它在clock.h中定義如下所示:

        #includeqlcdnumber.h>

        classClock:publicQLCDNumber

        {

        public:

        Clock(QWidget*parent=0,constchar*name=0);

        protected:

        voidtimerEvent(QTimerEvent*event);

        private:

        voidshowTime();

        boolshowingColon;

        };

        構造函數showTime()是用當前時間初始化鐘表,并且告訴系統每1000ms調用一次timerEvent()來刷新LCD的顯示。在showTime()中,通過調用QLCDNumber::display()來顯示當前時間。每次調用showTime()來讓冒號閃爍時,冒號就被空白代替。

        clock.cpp的源碼如下所示:

        #includeqdatetime.h>

        #includeclock.h

        Clock::Clock(QWidget*parent,constchar*name)

        :QLCDNumber(parent,name),showingColon(true)

        {

        showTime();

        startTimer(1000);

        }

        voidClock::timerEvent(QTimerEvent*)

        {

        showTime();

        }

        voidClock::showTime()

        {

        QStringtimer=QTime::currentTime().toString().left(5);

        if(!showingColon)

        {

        time[2]='';

        }

        display(time);

        showingColon=!showingColon;

        }

        文件clock.h和clock.cpp完整地聲明并實現了Clock部件。

        #includeqapplication.h>

        #includeclock.h

        intmain(intargc,char**argv)

        {

        QApplicationapp(argc,argv);

        Clock*clock=newClock;

        app.setMainWidget(clock);

        clock->show();

        returnapp.exec();

        }

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        linux相關文章:linux教程




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 鞍山市| 田东县| 玉林市| 石台县| 孟连| 弥勒县| 托克逊县| 澄江县| 耿马| 闻喜县| 新密市| 阜宁县| 应城市| 措美县| 长沙县| 洛宁县| 南靖县| 天台县| 柳林县| 屏东县| 疏勒县| 东丽区| 伊宁县| 怀宁县| 精河县| 成武县| 白朗县| 缙云县| 修文县| 石楼县| 恩平市| 黄大仙区| 盐亭县| 黔东| 高邮市| 双城市| 浙江省| 景德镇市| 崇州市| 北流市| 中山市|