新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > Qt圖形編程基礎之:Qt/Embedded開發(fā)入門

Qt圖形編程基礎之:Qt/Embedded開發(fā)入門

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

本文引用地址:http://butianyuan.cn/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.自定義窗口

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

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

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

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

#includeqlcdnumber.h>

classClock:publicQLCDNumber

{

public:

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

protected:

voidtimerEvent(QTimerEvent*event);

private:

voidshowTime();

boolshowingColon;

};

構造函數showTime()是用當前時間初始化鐘表,并且告訴系統(tǒng)每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完整地聲明并實現(xiàn)了Clock部件。

#includeqapplication.h>

#includeclock.h

intmain(intargc,char**argv)

{

QApplicationapp(argc,argv);

Clock*clock=newClock;

app.setMainWidget(clock);

clock->show();

returnapp.exec();

}

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

linux相關文章:linux教程




評論


相關推薦

技術專區(qū)

關閉