




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人才引進與培養合同
- 2025石油運輸合同范本
- 2025版標準個人借款合同范本
- 《金融市場分析教程》課件
- 汽車鈑噴維修前臺培訓
- 2025機動車借款抵押合同范本
- 九年級數學中考復習計劃2013-
- 人力資源管理行業的未來發展趨勢
- 人教版生物八年級上冊5.2.1《動物的運動》教學設計
- 第6課《珍愛環境·活動一:活動二:空氣質量的調查》 教學設計 2023-2024學年粵教版《綜合實踐活動》七年級下冊
- 售前售中售后服務培訓
- 高中英語2025屆高考讀后續寫高分佳句(共11種74句)
- 【MOOC】知識創新與學術規范-南京大學 中國大學慕課MOOC答案
- 【MOOC】供應鏈管理-武漢理工大學 中國大學慕課MOOC答案
- 消防防煙和排煙系統操作規程
- 礦山工程分包合同模板
- 機械設備潤滑油基礎知識(一)課件
- 高處安裝、維護、拆除高處作業(復審)模擬考試題庫試卷
- 人教PEP版(一起)(2024)一年級上冊英語全冊教案(單元整體教學設計)
- 胰島素皮下注射標準解讀
- 重度哮喘診斷與處理中國專家共識(2024)解讀
評論
0/150
提交評論