当前位置:   article > 正文

倒数日 小程序_倒数日程序

倒数日程序

关于这个

上个学期刚开学的时候写的,当时似乎是为了看 还有几天考六级写的,就想着 有个倒计时程序,简洁 一点, 然后好看一点, 然后可以像snipast那样贴到桌面上。这个程序就诞生了。关于计算 两个日期之间的天数的代码,qt里面一个函数就搞定了(day_num=QDate::currentDate().daysTo(date);

今天重新写了一遍,又搞了点美化,加了圆角和可选颜色。(其实本来打算写成 可以存下好几个日期的,但是感觉文件太麻烦了啊,还是大道至简嘛(doge)。

在这里插入图片描述
在这里插入图片描述
左右两个图标,左边是设置 名称 日期 颜色,右边本来想做成可以选择 不同的 事件,但是没弄。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

主要代码

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    this->setAttribute(Qt::WA_TranslucentBackground);
    this->setWindowFlags(Qt::FramelessWindowHint|Qt::Tool);

    this->ui->btn_setting->hide();
    this->ui->btn_list->hide();

    readFile();

    connect(this->ui->btn_setting,QToolButton::clicked,this,[=](){

        QString name;
        QDate date;
        QColor color;

        QFile file("c:\\myfile\\timedata.time");
        file.open(QIODevice::ReadOnly);
        QDataStream in(&file);
        in>>name>>date>>color;

        this->setting.setName(name);
        this->setting.setDate(date);
        this->setting.setColor(color);


        this->setting.show();
    });

    connect(&(this->setting),settingForm::changeData,this,[=](){
        this->setting.hide();
        writeFile(setting.getName(),setting.getDate(),setting.getColor());
        readFile();



        this->show();

    });

    this->setStyleSheet("QLabel{ border-radius:12px;background-color:rgba(111, 210, 98, 255);}QToolButton{background: transparent;}");




}

void Widget::changeColor(QColor color)
{
    int r=color.red(),g=color.green(),b=color.blue(),alpha=color.alpha();
    this->setStyleSheet(QString("QLabel{ border-radius:12px;background-color:rgba(%1, %2, %3, %4);}QToolButton{background: transparent;}")
                        .arg(r)
                        .arg(g)
                        .arg(b)
                        .arg(alpha));


}

Widget::~Widget()
{
    delete ui;
}

void Widget::readFile()
{
    QFile file("c:\\myfile\\timedata.time");
    if(!file.exists())
    {
        bool ok;
        QString name=QInputDialog::getText(this,"无缓冲信息,请输入:","倒数日 事件名称:",QLineEdit::Normal,"",&ok);
        if(!ok) return;

        QString str_date=QInputDialog::getText(this,"无缓冲信息,请输入:","倒数日 事件日期(以yyyy-MM-dd形式输入):",QLineEdit::Normal,"",&ok);
        if(!ok) return ;

        QDate date=QDate::fromString(str_date,"yyyy-MM-dd");
        qDebug()<<"fromstring"<<date;

        writeFile(name,date,QColor(111, 210, 98, 120));


        readFile();


    }
    else
    {
        QString name;
        QDate date;
        QColor color;
        int day_num;
        file.open(QIODevice::ReadOnly);
        QDataStream in(&file);
        in>>name>>date>>color;
        qDebug()<<date;
        day_num=QDate::currentDate().daysTo(date);

        file.close();

        this->ui->label->setText(QString("距离%1还有%2天")
                                            .arg(name)
                                            .arg(day_num)
                                 );

        changeColor(color);


    }
}

void Widget::writeFile(QString name, QDate date, QColor color)
{
    //如果没有目录 myfile 创建c://myfile
    QDir mydir("C://myfile");
    if(!mydir.exists()) mydir.mkdir("C://myfile");

    QFile file("c:\\myfile\\timedata.time");
    file.open(QIODevice::WriteOnly);
    QDataStream out(&file);
    out<<name<<date<<color;

    file.close();

}

void Widget::mouseMoveEvent(QMouseEvent *ev)
{
    this->move(ev->globalPos()-point);
}
void Widget::mousePressEvent(QMouseEvent *ev)
{
    this->point=ev->pos();
}
void Widget::enterEvent(QEvent *event)
{
    this->ui->btn_setting->show();
    this->ui->btn_list->show();
}

void Widget::leaveEvent(QEvent *event)
{
    this->ui->btn_setting->hide();
    this->ui->btn_list->hide();
}


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/498607
推荐阅读
相关标签
  

闽ICP备14008679号