Commit f3e61a35 by NitefullWind

1. 实现是loading和计时界面。

parent 5b86310c
...@@ -3,6 +3,9 @@ ...@@ -3,6 +3,9 @@
#include "QKeyEvent" #include "QKeyEvent"
#include "QsLog.h" #include "QsLog.h"
#include "fmtool.h" #include "fmtool.h"
#include "labelstimer.h"
#include <QMovie>
HostWidget::HostWidget(QWidget *parent) : HostWidget::HostWidget(QWidget *parent) :
FMPWindow(parent), FMPWindow(parent),
...@@ -19,6 +22,14 @@ HostWidget::HostWidget(QWidget *parent) : ...@@ -19,6 +22,14 @@ HostWidget::HostWidget(QWidget *parent) :
_curr_show_widget = NULL; _curr_show_widget = NULL;
InitWidget(); InitWidget();
_label_pay_timer = new LabelsTimer(ui->label_pay_time, 60, "% 秒");
connect(_label_pay_timer, &LabelsTimer::timeout, this, &HostWidget::on_btn_mananger_exit_clicked);
_label_pay_movie = new QMovie(":res/loading.gif");
_label_pay_movie->start();
ui->label_pay_time_load->setMovie(_label_pay_movie);
} }
void HostWidget::ShowWidget(QWidget *showwidget) void HostWidget::ShowWidget(QWidget *showwidget)
...@@ -29,6 +40,8 @@ void HostWidget::ShowWidget(QWidget *showwidget) ...@@ -29,6 +40,8 @@ void HostWidget::ShowWidget(QWidget *showwidget)
ui->lineEdit_pay_code->clear(); ui->lineEdit_pay_code->clear();
ui->lineEdit_pay_code->setWindowOpacity(0); ui->lineEdit_pay_code->setWindowOpacity(0);
ui->lineEdit_pay_code->setFocus(); ui->lineEdit_pay_code->setFocus();
_label_pay_timer->start(60, "%1 秒");
} }
for(int i = 0; i < _widgetlist.size(); ++i) for(int i = 0; i < _widgetlist.size(); ++i)
...@@ -55,6 +68,10 @@ void HostWidget::InitWidget() ...@@ -55,6 +68,10 @@ void HostWidget::InitWidget()
HostWidget::~HostWidget() HostWidget::~HostWidget()
{ {
delete ui; delete ui;
if(_label_pay_timer != NULL) {
delete _label_pay_timer;
_label_pay_timer = NULL;
}
} }
void HostWidget::keyPressEvent(QKeyEvent *ke) void HostWidget::keyPressEvent(QKeyEvent *ke)
...@@ -65,6 +82,8 @@ void HostWidget::keyPressEvent(QKeyEvent *ke) ...@@ -65,6 +82,8 @@ void HostWidget::keyPressEvent(QKeyEvent *ke)
ui->label_pay_money->hide(); ui->label_pay_money->hide();
ui->label_pay_title->setText("支付宝支付中..."); ui->label_pay_title->setText("支付宝支付中...");
_label_pay_timer->start(60, "%1 秒");
QStringList list; QStringList list;
list.append(ui->lineEdit_pay_code->text()); list.append(ui->lineEdit_pay_code->text());
...@@ -95,12 +114,16 @@ void HostWidget::ShowWithRequest(AlipayRequest request) ...@@ -95,12 +114,16 @@ void HostWidget::ShowWithRequest(AlipayRequest request)
{ {
ShowWidget(ui->pay); ShowWidget(ui->pay);
_curr_show_widget = ui->pay; _curr_show_widget = ui->pay;
double Amount = FMTool::GetString(_data.Amount, 12).toInt()/100.0;
ui->label_pay_money->setText(QString("需收取 ¥ %1").arg(Amount));
} }
if(reqtype.compare("40") == 0) if(reqtype.compare("40") == 0)
{ {
ShowWidget(ui->pay); ShowWidget(ui->pay);
_curr_show_widget = ui->pay; _curr_show_widget = ui->pay;
double Amount = FMTool::GetString(_data.Amount, 12).toInt()/100.0;
ui->label_pay_money->setText(QString("退款 ¥ %1").arg(Amount));
} }
if(reqtype.compare("80") == 0) if(reqtype.compare("80") == 0)
......
...@@ -7,6 +7,9 @@ ...@@ -7,6 +7,9 @@
#include <QList> #include <QList>
#include <QStringList> #include <QStringList>
class LabelsTimer;
class QMovie;
namespace Ui { namespace Ui {
class HostWidget; class HostWidget;
} }
...@@ -66,7 +69,8 @@ private: ...@@ -66,7 +69,8 @@ private:
AlipayRequest _data; AlipayRequest _data;
LabelsTimer *_label_pay_timer;
QMovie *_label_pay_movie;
}; };
#endif // HOSTWIDGET_H #endif // HOSTWIDGET_H
...@@ -538,21 +538,72 @@ ...@@ -538,21 +538,72 @@
</spacer> </spacer>
</item> </item>
<item> <item>
<widget class="QLabel" name="label_pay_time"> <widget class="QWidget" name="widget_pay_time" native="true">
<property name="styleSheet"> <property name="minimumSize">
<string notr="true">#label_pay_time <size>
<width>64</width>
<height>64</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>64</width>
<height>64</height>
</size>
</property>
<widget class="QLabel" name="label_pay_time">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>64</width>
<height>64</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">#label_pay_time
{ {
font: 16px &quot;微软雅黑&quot;; font: 16px &quot;微软雅黑&quot;;
color: rgb(0, 179, 238); color: rgb(0, 179, 238);
}</string>
</property> min-width: 64px; min-height:64px;
<property name="text"> max-width: 64px; max-height:64px;
<string>60秒</string> }
</property> </string>
<property name="alignment"> </property>
<set>Qt::AlignCenter</set> <property name="text">
</property> <string>60秒</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
<widget class="QLabel" name="label_pay_time_load">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>64</width>
<height>64</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>64</width>
<height>64</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>64</width>
<height>64</height>
</size>
</property>
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</widget> </widget>
</item> </item>
<item> <item>
......
#include "labelstimer.h"
#include <QTimer>
#include <QDebug>
LabelsTimer::LabelsTimer(QLabel *label, int time, QString format) :
QObject(label),
_label(label),
_timer(new QTimer(label)),
_time(time),
_format(format)
{
connect(_timer, &QTimer::timeout, this, &LabelsTimer::onTimeout);
}
LabelsTimer::~LabelsTimer()
{
if(_timer != NULL) {
delete _timer;
_timer = NULL;
}
}
void LabelsTimer::start()
{
_label->setText(_format.arg(_time));
_timer->setInterval(1000);
_timer->start();
}
void LabelsTimer::start(int time, QString format)
{
_time = time;
_format = format;
start();
}
void LabelsTimer::stop()
{
_timer->stop();
}
void LabelsTimer::onTimeout()
{
if(_time <= 1) {
_timer->stop();
emit timeout();
// this->deleteLater();
} else {
_time = _time - 1;
_label->setText(_format.arg(_time));
emit timeChanged(_time);
}
}
#ifndef LABELSTIMER_H
#define LABELSTIMER_H
#include <QWidget>
#include <QLabel>
class QTimer;
class LabelsTimer : public QObject
{
Q_OBJECT
public:
explicit LabelsTimer(QLabel *label, int time, QString format="%1");
virtual ~LabelsTimer();
void start();
void start(int time, QString format="%1");
void stop();
signals:
void timeout();
void timeChanged(int time);
public slots:
private slots:
void onTimeout();
private:
QLabel *_label;
QTimer *_timer;
int _time;
QString _format;
};
#endif // LABELSTIMER_H
<RCC>
<qresource prefix="/">
<file>res/loading.gif</file>
</qresource>
</RCC>
...@@ -19,7 +19,8 @@ CONFIG += C++11 ...@@ -19,7 +19,8 @@ CONFIG += C++11
SOURCES += main.cpp\ SOURCES += main.cpp\
hostwidget.cpp \ hostwidget.cpp \
control.cpp control.cpp \
labelstimer.cpp
HEADERS += hostwidget.h \ HEADERS += hostwidget.h \
fmp_window.h \ fmp_window.h \
...@@ -29,6 +30,10 @@ HEADERS += hostwidget.h \ ...@@ -29,6 +30,10 @@ HEADERS += hostwidget.h \
payinterface.h \ payinterface.h \
fmerror.h \ fmerror.h \
fmtool.h \ fmtool.h \
jsonfactory.h jsonfactory.h \
labelstimer.h
FORMS += hostwidget.ui FORMS += hostwidget.ui
RESOURCES += \
res.qrc
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment