• 大小: 8KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签: QT  桌面  时钟  代码  

资源简介

1.用于桌面 2.显示完全 3.可放大缩小 4.纯代码 5.并配置整点音效(但是我注释了)

资源截图

代码片段和文件信息

#include “clock.h“

#include 
#include 
#include 
#include 
#include 
#include se>

const QPoint Clock::hourHand[4] = {
    QPoint(3 5)
    QPoint(0 13)
    QPoint(-3 5)
    QPoint(0 -40)
}; // 时针绘图区域
const QPoint Clock::minuteHand[4] = {
    QPoint(3 5)
    QPoint(0 16)
    QPoint(-3 5)
    QPoint(0 -68)
}; // 分针绘图区域
const QPoint Clock::secondHand[4] = {
    QPoint(3 5)
    QPoint(0 18)
    QPoint(-3 5)
    QPoint(0 -85)
}; // 秒针绘图区域

Clock::Clock(QWidget *parent)
    : QWidget(parent)
{
    //this->setWindowFlags(Qt::framelessWindowHint | Qt::Tool | Qt::WindowStaysOnTopHint); // 去掉标题栏去掉任务栏显示,窗口置顶
    this->setWindowFlags(Qt::framelessWindowHint | Qt::Tool ); // 去掉标题栏去掉任务栏显示
    this->setWindowIcon( QIcon(“:/ico/clock.ico“) );
    this->setWindowtitle( tr(“桌面时钟“) );
    this->resize(200 200);

    this->setAttribute(Qt::WA_TranslucentBackground true); // 窗口透明,去掉标题栏后方生效
//    this->setWindowOpacity(0.7); // 窗口透明度设置,其控件或绘图也透明,且达不到圆形窗口的效果

    /* 加载外部字体文件 */
    m_fontList.clear();
    int lcdFontId = QFontDatabase::addApplicationFont(“:/lcd/DS-DIGI.ttf“); // 从source资源文件
    if (lcdFontId != -1)
    {
        m_fontList << QFontDatabase::applicationFontFamilies(lcdFontId);
    }

    /* 画笔设置 */
    mHourHandPen = QPen(palette().foreground() 2.0);
    mMinuteHandPen = QPen(palette().foreground() 1.0);

    QTimer *pTimer = new QTimer(this);
    pTimer->start(1000);
    connect( pTimer SIGNAL(timeout()) this SLOT(update()) );

    /* 音效控制 */
//    QString dir = QCoreApplication::applicationDirPath();
//    QString filename(dir + “/sounds/clockMoveSound.wav“);
    //m_pEffect = new QSoundEffect(this);
    //m_pEffect->setLoopCount(QSoundEffect::Infinite); // 循环播放
//    m_pEffect->setSource( QUrl::fromLocalFile(filename) );
    //m_pEffect->setSource( QUrl::fromLocalFile(“:/sound/clockMoveSound.wav“) );
    //m_pEffect->setVolume(1.0); // 音量控制:0.0-1.0
//    m_pEffect->play(); // 播放
//    m_pEffect->stop(); // 停止

    /* 创建右键菜单 */
    createMenu();

    /* 创建系统托盘项 */
    createTray();
}

Clock::~Clock()
{
    delete m_pRBMenu;
    delete m_pCloseAct;
    delete m_pMaxiMinimizeAct;
    delete m_pSoundOnAct;
    delete m_pSoundOffAct;
    //delete m_pEffect;
}

/* 重写绘图事件 */
void Clock::paintEvent(QPaintEvent *e)
{
    QPainter painter(this);
    QFont font(“Microsoft Yahei“ 10 75); // 字体,大小,加粗等同于QFont::Bold
    painter.setFont(font);
    painter.setRenderHint(QPainter::Antialiasing true); //反锯齿
//    painter.setWindow(0 0 200 200);

    int side = qMin(this->width() this->height());

    /* 圆形背景的绘制 */
    painter.setPen(Qt::NoPen); // 去掉外圈线
    painter.setBrush(QColor(255 255 255 125));              // 背景颜色以及透明度
    painter.drawEllipse( QPoint(width()/2 height()/2) side/2 side/2 ); // 绘制背景

    painter.setPen(QPen( QColor(233 233 216 ) 4 )); // 外边框颜色以及大小

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      11289  2018-07-25 16:09  clock\clock.cpp

     文件       1545  2018-07-25 15:59  clock\clock.h

     文件       1036  2018-07-25 15:51  clock\clock.pro

     文件      23921  2018-07-25 16:09  clock\clock.pro.user

     文件        438  2018-07-25 15:51  clock\clock.ui

     文件        173  2018-07-25 15:59  clock\main.cpp

     目录          0  2018-07-25 16:09  clock

----------- ---------  ---------- -----  ----

                38402                    7


评论

共有 条评论