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);