Qt實(shí)現(xiàn)電子時(shí)鐘的示例代碼_第1頁(yè)
Qt實(shí)現(xiàn)電子時(shí)鐘的示例代碼_第2頁(yè)
Qt實(shí)現(xiàn)電子時(shí)鐘的示例代碼_第3頁(yè)
Qt實(shí)現(xiàn)電子時(shí)鐘的示例代碼_第4頁(yè)
Qt實(shí)現(xiàn)電子時(shí)鐘的示例代碼_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第Qt實(shí)現(xiàn)電子時(shí)鐘的示例代碼目錄一、項(xiàng)目介紹二、項(xiàng)目基本配置三、UI界面設(shè)計(jì)四、主程序?qū)崿F(xiàn)4.1添加新文件4.2digiclock.h頭文件4.3digiclock.cpp源文件4.4main.cpp源文件五、效果演示

一、項(xiàng)目介紹

利用Qt實(shí)現(xiàn)顯示與桌面上并可以隨意拖拽至桌面任意位置的電子時(shí)鐘案例。

二、項(xiàng)目基本配置

新建一個(gè)Qt案例,項(xiàng)目名稱為Clock,基類選擇QDialog,取消創(chuàng)建UI界面復(fù)選框的選中狀態(tài)。

三、UI界面設(shè)計(jì)

無(wú)UI界面

四、主程序?qū)崿F(xiàn)

4.1添加新文件

添加新文件:

選擇C++Class選項(xiàng),單擊Choose按鈕,選擇Baseclass文本框中輸入基類名QLCDNumber(手動(dòng)添加),在Classname文本框中輸入類的名稱DigiClock:

4.2digiclock.h頭文件

代碼如下:

#ifndefDIGICLOCK_H

#defineDIGICLOCK_H

#includeQLCDNumber

classDigiClock:publicQLCDNumber

Q_OBJECT

public:

DigiClock(QWidget*parent=0);

voidmousePressEvent(QMouseEvent*);

voidmouseMoveEvent(QMouseEvent*);

publicslots:

voidshowTime();//顯示當(dāng)前時(shí)間

private:

QPointdragPosition;//保存鼠標(biāo)點(diǎn)相對(duì)電子時(shí)鐘窗體左上角的偏移量

boolshowColon;//用于顯示時(shí)間時(shí)是否顯示:

#endif//DIGICLOCK_H

4.3digiclock.cpp源文件

首先,DigiClock類繼承自QLCDNumber類:

DigiClock::DigiClock(QWidget*parent):QLCDNumber(parent)

//設(shè)置時(shí)鐘背景

QPalettep=palette();//定義調(diào)色板對(duì)象

p.setColor(QPalette::Window,Qt::blue);//設(shè)置背景顏色為藍(lán)色

setPalette(p);//啟用調(diào)色板對(duì)象

setWindowFlags(Qt::FramelessWindowHint);//生成無(wú)邊界窗口

setWindowOpacity(0.5);//設(shè)置窗體透明度為0.5

QTimer*timer=newQTimer(this);//新建定時(shí)器對(duì)象

connect(timer,SIGNAL(timeout()),this,SLOT(showTime()));//連接定時(shí)器地timeout()信號(hào)與顯示時(shí)間的槽信號(hào)showTime()

timer-start(1000);//啟動(dòng)定時(shí)器(每隔1000ms啟動(dòng)一次)

showTime();//初始時(shí)間顯示

resize(150,60);//設(shè)置電子時(shí)鐘顯示的尺寸

showColon=true;//初始化

然后定義槽函數(shù)showTime(),完成電子鐘的顯示時(shí)間功能:

//槽函數(shù)showTime()

voidDigiClock::showTime()

QTimetime=QTime::currentTime();//獲取當(dāng)前系統(tǒng)時(shí)間

QStringtext=time.toString("hh:mm");//獲取的當(dāng)前時(shí)間轉(zhuǎn)換為字符串類型

if(showColon)//控制:閃爍

text[2]=':';

showColon=false;

else

text[2]='';

showColon=true;

display(text);//顯示轉(zhuǎn)換好的字符串時(shí)間

接著,定義鼠標(biāo)按下事件響應(yīng)函數(shù):

//鼠標(biāo)按下事件響應(yīng)函數(shù)

voidDigiClock::mousePressEvent(QMouseEvent*event)

if(event-button()==Qt::LeftButton)//判斷按下鍵是否為鼠標(biāo)左鍵

//dragPosition=event-globalPos()-frameGeometry().topLeft();

dragPosition=event-pos();//兩種方法

//event-accept();//接收事件

if(event-button()==Qt::RightButton)//若按下鍵為鼠標(biāo)右鍵

close();//退出

定義鼠標(biāo)移動(dòng)事件響應(yīng)函數(shù),實(shí)現(xiàn)拖拽功能:

//鼠標(biāo)移動(dòng)響應(yīng)函數(shù)

voidDigiClock::mouseMoveEvent(QMouseEvent*event)

if(event-buttons()Qt::LeftButton)

move(event-globalPos()-dragPosition);

//event-accept();//接收事件

4.4main.cpp源文件

代碼如下:

#include"dialog.h"

#includeQApplication

#include"digiclock.h"

intmain(intargc,char*argv[])

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔