欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Qt實(shí)現(xiàn)電子時(shí)鐘的示例代碼

 更新時(shí)間:2022年09月14日 10:00:07   作者:wendy_ya  
這篇文章主要為大家詳細(xì)介紹了如何利用Qt實(shí)現(xiàn)顯示與桌面上并可以隨意拖拽至桌面任意位置的電子時(shí)鐘案例,感興趣的小伙伴可以嘗試一下

一、項(xiàng)目介紹

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

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

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

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

無UI界面

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

4.1 添加新文件

添加新文件:

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

4.2 digiclock.h頭文件

代碼如下:

#ifndef DIGICLOCK_H
#define DIGICLOCK_H

#include <QLCDNumber>

class DigiClock : public QLCDNumber
{
    Q_OBJECT
public:
    DigiClock(QWidget *parent=0);
    void mousePressEvent(QMouseEvent *);
    void mouseMoveEvent(QMouseEvent *);

public slots:
    void showTime();    //顯示當(dāng)前時(shí)間

private:
    QPoint dragPosition;  //保存鼠標(biāo)點(diǎn)相對(duì)電子時(shí)鐘窗體左上角的偏移量
    bool showColon;       //用于顯示時(shí)間時(shí)是否顯示:
};

#endif // DIGICLOCK_H

4.3 digiclock.cpp源文件

首先,DigiClock類繼承自QLCDNumber類:

DigiClock::DigiClock(QWidget *parent):QLCDNumber(parent)
{
//設(shè)置時(shí)鐘背景
QPalette p=palette();//定義調(diào)色板對(duì)象
p.setColor(QPalette::Window,Qt::blue);//設(shè)置背景顏色為藍(lán)色
setPalette(p);//啟用調(diào)色板對(duì)象
setWindowFlags(Qt::FramelessWindowHint);//生成無邊界窗口
setWindowOpacity(0.5);//設(shè)置窗體透明度為0.5
QTimer *timer=new QTimer(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()
void DigiClock::showTime()
{
    QTime time=QTime::currentTime();    //獲取當(dāng)前系統(tǒng)時(shí)間
    QString text=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ù)
void DigiClock::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ù)
void DigiClock::mouseMoveEvent(QMouseEvent *event)
{
    if(event->buttons()&Qt::LeftButton)
    {
        move(event->globalPos()-dragPosition);
        //event->accept();//接收事件
    }
}

4.4 main.cpp源文件

代碼如下:

#include "dialog.h"
#include <QApplication>
#include"digiclock.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    DigiClock clock;
    clock.show();
//    Dialog w;
//    w.show();
    return a.exec();
}

五、效果演示

到此這篇關(guān)于Qt實(shí)現(xiàn)電子時(shí)鐘的示例代碼的文章就介紹到這了,更多相關(guān)Qt電子時(shí)鐘內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 深入C++中struct與class的區(qū)別分析

    深入C++中struct與class的區(qū)別分析

    本篇文章是對(duì)C++中struct與class的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++設(shè)計(jì)模式之CRTP的使用

    C++設(shè)計(jì)模式之CRTP的使用

    CRTP全稱是curious?recurring?template?pattern,即奇異遞歸模版模式,是一種c++的設(shè)計(jì)模式,精巧地結(jié)合了繼承和模板編程的技術(shù),下面就跟隨小編一起來學(xué)習(xí)一下CRTP的使用吧
    2023-10-10
  • 詳解C語言解決經(jīng)典問題之兔子產(chǎn)子

    詳解C語言解決經(jīng)典問題之兔子產(chǎn)子

    有一對(duì)兔子,從出生后的第 3 個(gè)月起每個(gè)月都生一對(duì)兔子。小兔子長(zhǎng)到第 3 個(gè)月后每個(gè)月又生一對(duì)兔子,假設(shè)所有的兔子都不死,問 30 個(gè)月內(nèi)每個(gè)月的兔子總數(shù)為多少?本文將用C語言解決這一經(jīng)典問題,需要的可以參考一下
    2022-03-03
  • C++單鏈表實(shí)現(xiàn)大數(shù)加法

    C++單鏈表實(shí)現(xiàn)大數(shù)加法

    這篇文章主要為大家詳細(xì)介紹了C++單鏈表實(shí)現(xiàn)大數(shù)加法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • c語言如何實(shí)現(xiàn)DES加密解密

    c語言如何實(shí)現(xiàn)DES加密解密

    這篇文章主要介紹了c語言如何實(shí)現(xiàn)DES加密解密問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • C++基于棧的深搜算法實(shí)現(xiàn)馬踏棋盤

    C++基于棧的深搜算法實(shí)現(xiàn)馬踏棋盤

    這篇文章主要為大家詳細(xì)介紹了C++基于棧的深搜算法實(shí)現(xiàn)馬踏棋盤,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 解決了個(gè)困擾了2天的問題,定點(diǎn)運(yùn)算問題

    解決了個(gè)困擾了2天的問題,定點(diǎn)運(yùn)算問題

    本文主要講解定點(diǎn)運(yùn)算問題,需要的朋友可以參考一下。
    2016-06-06
  • VC6.0常見編譯錯(cuò)誤提示附解決方法

    VC6.0常見編譯錯(cuò)誤提示附解決方法

    這篇文章主要介紹了VC++6.0編譯過程中常遇到的一些錯(cuò)誤提示并給出了錯(cuò)誤原因與分析,需要的朋友尅參考下
    2013-07-07
  • C語言常用的編輯器你知道幾個(gè)

    C語言常用的編輯器你知道幾個(gè)

    這篇文章主要為大家詳細(xì)介紹了C語言常用的編輯器,中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • MFC設(shè)置對(duì)話框焦點(diǎn)的方法簡(jiǎn)述

    MFC設(shè)置對(duì)話框焦點(diǎn)的方法簡(jiǎn)述

    這篇文章主要介紹了MFC設(shè)置對(duì)話框焦點(diǎn)的方法簡(jiǎn)述,主要講述了兩種實(shí)現(xiàn)方法,需要的朋友可以參考下
    2014-10-10

最新評(píng)論