基于Qt5的鬧鐘實現代碼_第1頁
基于Qt5的鬧鐘實現代碼_第2頁
基于Qt5的鬧鐘實現代碼_第3頁
基于Qt5的鬧鐘實現代碼_第4頁
基于Qt5的鬧鐘實現代碼_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、本程序基于QWidget實現,可以動態顯示鐘表,并且可以添加鈴聲頭文件widget.h代碼如下:#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include<QTime>#include<QTimer>#include<QLabel>#include<QPushButton>#include<QVBoxLayout>#include<QHBoxLayout>#include<QTimeEdit>#include<QLCDNumber>

2、;#include<QVariant>#include<QAction>#include<QMenu>#include<QCloseEvent>#include<QApplication>#include<QMessageBox>#include<QSystemTrayIcon>namespace Ui class Widget;class Widget : public QWidget Q_OBJECTpublic: explicit Widget(QWidget *parent = 0); Widget()

3、;signals: void isCurrentTime();private: Ui:Widget *ui; void init(); void layout(); void con(); QLCDNumber *lcdNumber; QLabel *label; QTimeEdit *timeEdit; QPushButton *button; QTimer *timer; QTimer *uptimer; QTimer *dtimer; QTimer *itimer; QRect rect; int x; int y; double du; QSystemTrayIcon *trayIco

4、n; QAction *restoreAct; QAction *quitAct; QMenu *trayIconMenu;private slots: void clockChange(); void dialogUp(); void mini(); void down(); void comToCur();protected: void closeEvent(QCloseEvent *e);#endif / WIDGET_H源文件widget.cpp代碼如下:#include "widget.h"#include "ui_widget.h"#incl

5、ude<QtDebug>#include<QApplication>#include<QDesktopWidget>Widget:Widget(QWidget *parent) : QWidget(parent), ui(new Ui:Widget) ui->setupUi(this); init(); layout(); con(); void Widget:init() setWindowTitle("我的鬧鐘"); setFixedSize(300,80); timer=new QTimer; uptimer=new QTim

6、er; dtimer=new QTimer; itimer=new QTimer; lcdNumber=new QLCDNumber; lcdNumber->setFixedSize(150,50); lcdNumber->setDigitCount(12); lcdNumber->setSegmentStyle(QLCDNumber:Flat); lcdNumber->display(QTime:currentTime().toString("hh:mm:ss:zzz"); label=new QLabel("鬧鐘"); tim

7、eEdit=new QTimeEdit; timeEdit->setDisplayFormat("hh:mm:ss"); button=new QPushButton("確定"); trayIcon=new QSystemTrayIcon; trayIcon->setIcon(QIcon(":/new/prefix1/clock.ico"); trayIcon->show(); setWindowIcon(QIcon(":/new/prefix1/clock.ico"); restoreAct=n

8、ew QAction("顯示",this); quitAct=new QAction("退出",this); trayIconMenu=new QMenu; trayIconMenu->addAction(restoreAct); trayIconMenu->addAction(quitAct); trayIcon->setContextMenu(trayIconMenu); setWindowFlags(Qt:WindowStaysOnTopHint);void Widget:layout() QHBoxLayout *rightTo

9、pLay=new QHBoxLayout; rightTopLay->addWidget(label); rightTopLay->addWidget(timeEdit); QHBoxLayout *rightButtonLay=new QHBoxLayout; rightButtonLay->addStretch(); rightButtonLay->addWidget(button); QVBoxLayout *rightLay=new QVBoxLayout; rightLay->addLayout(rightTopLay); rightLay->ad

10、dLayout(rightButtonLay); rightLay->addStretch(); QHBoxLayout *m=new QHBoxLayout; m->addWidget(lcdNumber); m->addLayout(rightLay); setLayout(m); QDesktopWidget *p=new QDesktopWidget; p=QApplication:desktop();/ rect=p->rect(); x=rect.right()-width()-2;/ y=rect.bottom()+30;/ setGeometry(x,y

11、,width(),height();void Widget:con() connect(timer,SIGNAL(timeout(),this,SLOT(clockChange(); timer->start(1); connect(uptimer,SIGNAL(timeout(),this,SLOT(dialogUp(); uptimer->start(20); connect(dtimer,SIGNAL(timeout(),this,SLOT(down(); dtimer->start(20); connect(button,SIGNAL(clicked(bool),dt

12、imer,SIGNAL(timeout(); connect(button,SIGNAL(clicked(bool),this,SLOT(mini(); connect(itimer,SIGNAL(timeout(),this,SLOT(comToCur(); itimer->start(20); connect(restoreAct,SIGNAL(triggered(bool),uptimer,SIGNAL(timeout(); connect(this,SIGNAL(isCurrentTime(),uptimer,SIGNAL(timeout(); connect(itimer,SI

13、GNAL(timeout(),this,SLOT(comToCur(); itimer->start(20); connect(quitAct,SIGNAL(triggered(bool),this,SLOT(close();void Widget:clockChange() lcdNumber->display(QTime:currentTime().toString("hh:mm:ss:zzz");void Widget:dialogUp() show(); uptimer->start(20); if(y>=rect.bottom()-heig

14、ht()-50) y-=2; else uptimer->stop(); setGeometry(x,y,width(),height();void Widget:down() dtimer->start(20); if(y<rect.bottom() y+=height()+20; else dtimer->stop(); setGeometry(x,y,width(),height();void Widget:mini() hide();void Widget:closeEvent(QCloseEvent *e) QMessageBox:information(0,&qu

溫馨提示

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

評論

0/150

提交評論