diff --git a/tool/moneytool/main.cpp b/tool/moneytool/main.cpp index 4c784c8..67dbbe2 100644 --- a/tool/moneytool/main.cpp +++ b/tool/moneytool/main.cpp @@ -27,7 +27,7 @@ int main(int argc, char *argv[]) #endif Widget w; - w.setWindowTitle("存款计算器 (QQ: 517216493 WX: feiyangqingyun)"); + w.setWindowTitle("存款/贷款 计算器 (QQ: 517216493 WX: feiyangqingyun)"); w.show(); return a.exec(); diff --git a/tool/moneytool/widget.cpp b/tool/moneytool/widget.cpp index e86d453..b42f9b3 100644 --- a/tool/moneytool/widget.cpp +++ b/tool/moneytool/widget.cpp @@ -8,6 +8,7 @@ Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); + this->initForm(); } Widget::~Widget() @@ -15,7 +16,14 @@ Widget::~Widget() delete ui; } -void Widget::on_btnOk_clicked() +void Widget::initForm() +{ + QDateTime now = QDateTime::currentDateTime(); + ui->dateStart->setDate(now.date()); + ui->dateEnd->setDate(now.date().addYears(1)); +} + +void Widget::on_btnCalc_clicked() { //当前多少钱 int moneyCurrent = ui->txtMoneyCurrent->text().toInt(); @@ -65,3 +73,16 @@ void Widget::on_btnOk_clicked() ui->txtValue->setText(QString::number(value)); } } + +void Widget::on_btnCalc2_clicked() +{ + //计算天数 + QDateTime dateStart = ui->dateStart->dateTime(); + QDateTime dateEnd = ui->dateEnd->dateTime(); + int day = dateStart.daysTo(dateEnd); + int money = ui->txtMoney2->text().toInt(); + float rate = ui->txtRate2->text().toFloat(); + int result = money * rate * day; + ui->txtResult2->setText(QString::number(result)); + qDebug() << day; +} diff --git a/tool/moneytool/widget.h b/tool/moneytool/widget.h index aff0891..701aeef 100644 --- a/tool/moneytool/widget.h +++ b/tool/moneytool/widget.h @@ -15,11 +15,13 @@ public: explicit Widget(QWidget *parent = 0); ~Widget(); -private slots: - void on_btnOk_clicked(); - private: Ui::Widget *ui; + +private slots: + void initForm(); + void on_btnCalc_clicked(); + void on_btnCalc2_clicked(); }; #endif // WIDGET_H diff --git a/tool/moneytool/widget.ui b/tool/moneytool/widget.ui index 7689c28..91b4655 100644 --- a/tool/moneytool/widget.ui +++ b/tool/moneytool/widget.ui @@ -13,180 +13,189 @@ 存款计算器 - + - - - - 600 - 16777215 - + + + 存款计算 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - - - 期限 - - - - - - - 利率 - - - - - - - 1 - - - - 单利 - - - - - 复利 - - - - - - - - - - - 1000000 - - - - - - - - 0 - 0 - - - - 计算 - - - - - - + - - - 本金 + + + + 600 + 16777215 + - - - - - - 1 - - - - 1年 + + + 0 - - - - 3年 + + 0 - - - - 5年 + + 0 - - - - - - - 年限 - - - - - - - 方式 - - - - - - - 总计2 - - - - - - - - - - 0.04125 - - - - - - - 总计1 - - - true - - - - - - - 总计 - - - - - - - 总计差额 - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - 30 - + + 0 + + + + + + + + 期限 + + + + + + + 利率 + + + + + + + 1 + + + + 单利 + + + + + 复利 + + + + + + + + + + + 1000000 + + + + + + + + 0 + 0 + + + + 计算 + + + + + + + + + + 本金 + + + + + + + 1 + + + + 1年 + + + + + 3年 + + + + + 5年 + + + + + + + + 年限 + + + + + + + 方式 + + + + + + + 总计2 + + + + + + + + + + 0.04125 + + + + + + + 总计1 + + + true + + + + + + + 总计 + + + + + + + 总计差额 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + 30 + + + + @@ -206,6 +215,140 @@ + + + + 0 + 200 + + + + 贷款计算 + + + + + + 贷款利率 + + + + + + + 贷款金额 + + + + + + + + 0 + 0 + + + + 计算 + + + + + + + 0.0003 + + + + + + + 到期日期 + + + + + + + 逾期利率 + + + + + + + 0.0003 + + + + + + + + 0 + 0 + + + + yyyy-MM-dd + + + true + + + + + + + yyyy-MM-dd + + + true + + + + + + + 100000 + + + + + + + 0.0003 + + + + + + + 贷款日期 + + + + + + + 复利利率 + + + + + + + 贷款利息 + + + + + + + + + + Qt::Vertical @@ -228,7 +371,7 @@ txtYears cboxType txtMoneyAll - btnOk + btnCalc rbtn1 txtValue1 rbtn2 diff --git a/video/playffmpeg/ffmpeg/ffmpeg.cpp b/video/playffmpeg/ffmpeg/ffmpeg.cpp index c455b87..d417440 100644 --- a/video/playffmpeg/ffmpeg/ffmpeg.cpp +++ b/video/playffmpeg/ffmpeg/ffmpeg.cpp @@ -231,6 +231,7 @@ bool FFmpegThread::init() void FFmpegThread::run() { + qint64 startTime = av_gettime(); while (!stopped) { //根据标志位执行初始化操作 if (isPlay) { @@ -270,16 +271,25 @@ void FFmpegThread::run() emit receiveImage(image); } - msleep(1); + usleep(1); } +#if 1 + //延时(不然文件会立即全部播放完) + AVRational timeBase = {1, AV_TIME_BASE}; + int64_t ptsTime = av_rescale_q(avPacket->dts, avFormatContext->streams[videoStreamIndex]->time_base, timeBase); + int64_t nowTime = av_gettime() - startTime; + if (ptsTime > nowTime) { + av_usleep(ptsTime - nowTime); + } +#endif } else if (index == audioStreamIndex) { - //解码音频流,这里暂不处理,以后交给sdl播放 + //解码音频流,自行处理 } } av_packet_unref(avPacket); av_freep(avPacket); - msleep(1); + usleep(1); } //线程结束后释放资源 diff --git a/video/playffmpeg/widget.cpp b/video/playffmpeg/widget.cpp index d7b82a8..c293500 100644 --- a/video/playffmpeg/widget.cpp +++ b/video/playffmpeg/widget.cpp @@ -9,7 +9,7 @@ Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) //本示例支持的是rtsp视频流(其他的一概不支持/没有做音视频同步) QStringList urls; urls << "http://vfx.mtime.cn/Video/2021/11/16/mp4/211116131456748178.mp4"; - urls << "rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov"; + urls << "http://vd3.bdstatic.com/mda-jennyc5ci1ugrxzi/mda-jennyc5ci1ugrxzi.mp4"; urls << "rtsp://admin:Admin123456@192.168.0.15:554/media/video1"; ui->cboxUrl->addItems(urls); ui->cboxUrl->setCurrentIndex(0);