调整布局及界面,增加动量周期选择

master
laixingyu 3 years ago
parent e1bf0487e1
commit b6eafad1f1

@ -17,10 +17,11 @@ SOURCES += \
mainwindow.cpp \ mainwindow.cpp \
model/tradetablemodel.cpp \ model/tradetablemodel.cpp \
ruoyi/ruoyidatamanager.cpp \ ruoyi/ruoyidatamanager.cpp \
widget/trendwidget.cpp \
userdata.cpp \ userdata.cpp \
widget/addtradedialog.cpp \ widget/addtradedialog.cpp \
widget/logindialog.cpp \ widget/logindialog.cpp \
widget/trendswidget.cpp widget/trends.cpp
HEADERS += \ HEADERS += \
basedatamanager.h \ basedatamanager.h \
@ -28,16 +29,18 @@ HEADERS += \
model/tradetablemodel.h \ model/tradetablemodel.h \
ruoyi/ruoyidatamanager.h \ ruoyi/ruoyidatamanager.h \
structs.h \ structs.h \
widget/trendwidget.h \
userdata.h \ userdata.h \
widget/addtradedialog.h \ widget/addtradedialog.h \
widget/logindialog.h \ widget/logindialog.h \
widget/trendswidget.h widget/trends.h
FORMS += \ FORMS += \
mainwindow.ui \ mainwindow.ui \
widget/trendwidget.ui \
widget/addtradedialog.ui \ widget/addtradedialog.ui \
widget/logindialog.ui \ widget/logindialog.ui \
widget/trendswidget.ui widget/trends.ui
win32-msvc2010 { win32-msvc2010 {
SPEC = win32-msvc2010 SPEC = win32-msvc2010

@ -23,7 +23,7 @@ UserInfo BaseDataManager::Login(const QString &userName, const QString &password
return UserInfo(); return UserInfo();
} }
QList<QList<QString> > BaseDataManager::GetTrends(QDate date,const QString& token) QList<QList<QString> > BaseDataManager::GetTrends(const TrendsRequestParam& requestParam)
{ {
return QList<QList<QString> >(); return QList<QList<QString> >();
} }

@ -15,7 +15,7 @@ public:
virtual QPixmap GetVerificationCode(); virtual QPixmap GetVerificationCode();
virtual UserInfo Login(const QString& userName,const QString& password,const QString& code); virtual UserInfo Login(const QString& userName,const QString& password,const QString& code);
virtual QList<QList<QString> > GetTrends(QDate date,const QString& token); virtual QList<QList<QString> > GetTrends(const TrendsRequestParam& requestParam);
signals: signals:
//请求结束 ret 返回值 0成功 非0失败 //请求结束 ret 返回值 0成功 非0失败

@ -26,7 +26,7 @@ int main(int argc, char *argv[])
{ {
MainWindow w; MainWindow w;
w.SetUserInfo(login.GetUserInfo()); w.SetUserInfo(login.GetUserInfo());
w.LoadTrendsData(); // w.LoadTrendsData();
QUIHelper::setFormInCenter(&login); QUIHelper::setFormInCenter(&login);
w.show(); w.show();
return app.exec(); return app.exec();

@ -443,7 +443,7 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="TrendsWidget" name="trendsPage"/> <widget class="Trends" name="trendsPage"/>
<widget class="QWidget" name="limitPage"/> <widget class="QWidget" name="limitPage"/>
<widget class="QWidget" name="newRecordPage"/> <widget class="QWidget" name="newRecordPage"/>
</widget> </widget>
@ -461,9 +461,9 @@
</widget> </widget>
<customwidgets> <customwidgets>
<customwidget> <customwidget>
<class>TrendsWidget</class> <class>Trends</class>
<extends>QWidget</extends> <extends>QWidget</extends>
<header location="global">widget/trendswidget.h</header> <header location="global">widget/trends.h</header>
<container>1</container> <container>1</container>
</customwidget> </customwidget>
</customwidgets> </customwidgets>

@ -73,7 +73,7 @@ UserInfo RuoyiDataManager::Login(const QString &userName, const QString &passwor
return m_userInfo; return m_userInfo;
} }
QList<QList<QString> > RuoyiDataManager::GetTrends(QDate date,const QString& token) QList<QList<QString> > RuoyiDataManager::GetTrends(const TrendsRequestParam& requestParam)
{ {
QNetworkRequest request; QNetworkRequest request;
QString urlStr(m_sUrl + "/prod-api/stocksystem/trends/listSection"); QString urlStr(m_sUrl + "/prod-api/stocksystem/trends/listSection");
@ -81,17 +81,17 @@ QList<QList<QString> > RuoyiDataManager::GetTrends(QDate date,const QString& tok
QUrl url = QUrl(urlStr); QUrl url = QUrl(urlStr);
QUrlQuery query; QUrlQuery query;
query.addQueryItem("Token", token.toUtf8()); query.addQueryItem("Token", requestParam.token.toUtf8());
query.addQueryItem("pageNum", "1"); query.addQueryItem("pageNum", requestParam.pageNum);
query.addQueryItem("pageSize", "10"); query.addQueryItem("pageSize", requestParam.pageSize);
query.addQueryItem("tradeDay", "2023-12-07"); query.addQueryItem("tradeDay", requestParam.tradeDay);
query.addQueryItem("type", "20"); query.addQueryItem("type", requestParam.period);
url.setQuery(query); url.setQuery(query);
request.setUrl(url); request.setUrl(url);
request.setHeader(QNetworkRequest::ContentTypeHeader,"application/json;charset=UTF-8"); request.setHeader(QNetworkRequest::ContentTypeHeader,"application/json;charset=UTF-8");
request.setRawHeader("Authorization",QString("Bearer %1").arg(token).toLocal8Bit()); request.setRawHeader("Authorization",QString("Bearer %1").arg(requestParam.token).toLocal8Bit());
qDebug() << __FUNCTION__ << " rawHeader: " << QString("Bearer %1").arg(token).toLocal8Bit(); qDebug() << __FUNCTION__ << " rawHeader: " << QString("Bearer %1").arg(requestParam.token).toLocal8Bit();
QNetworkReply *reply = m_pNetworkManager->get(request); QNetworkReply *reply = m_pNetworkManager->get(request);
reply->setProperty("msgType",QVariant(int(GETTRENDS))); reply->setProperty("msgType",QVariant(int(GETTRENDS)));

@ -21,7 +21,7 @@ public:
QPixmap GetVerificationCode() override; QPixmap GetVerificationCode() override;
UserInfo Login(const QString& userName,const QString& password,const QString& code) override; UserInfo Login(const QString& userName,const QString& password,const QString& code) override;
QList<QList<QString> > GetTrends(QDate date,const QString& token) override; QList<QList<QString> > GetTrends(const TrendsRequestParam& requestParam) override;
public slots: public slots:
void RequestFinished(); void RequestFinished();

@ -19,4 +19,22 @@ typedef struct tagUserInfo
QPixmap codePix; QPixmap codePix;
}UserInfo; }UserInfo;
typedef struct tagTrendsRequstParam
{
QString period;//"1","3","5","10","15","20,"30",查询周期
QString tradeDay;//交易日
QString token;
QString pageNum;//页码
QString pageSize;//页数量
tagTrendsRequstParam()
{
period = "";
tradeDay = "2023-12-01";
token = "";
pageNum = "1";
pageSize = "10";
}
}TrendsRequestParam;
#endif // STRUCTS_H #endif // STRUCTS_H

@ -43,9 +43,9 @@ UserInfo UserData::Login(const QString &userName, const QString &password, const
return m_pDataManager->Login(userName,password,code); return m_pDataManager->Login(userName,password,code);
} }
QList<QList<QString> > UserData::GetTrends(QDate date, const QString &token) QList<QList<QString> > UserData::GetTrends(const TrendsRequestParam& requestParam)
{ {
if(m_pDataManager != nullptr) if(m_pDataManager != nullptr)
return m_pDataManager->GetTrends(date,token); return m_pDataManager->GetTrends(requestParam);
return QList<QList<QString> >(); return QList<QList<QString> >();
} }

@ -18,7 +18,7 @@ public:
//登录 获取用户信息,同步等待 //登录 获取用户信息,同步等待
UserInfo Login(const QString& userName,const QString& password,const QString& code); UserInfo Login(const QString& userName,const QString& password,const QString& code);
//获取trends //获取trends
QList<QList<QString> > GetTrends(QDate date,const QString& token); QList<QList<QString> > GetTrends(const TrendsRequestParam& requestParam);
private: private:
BaseDataManager* m_pDataManager; BaseDataManager* m_pDataManager;

@ -0,0 +1,61 @@
#include "trends.h".h"
#include "ui_trends.h"
#include <QDebug>
#include <QTableWidgetItem>
#include <QColor>
#include "trendwidget.h"
Trends::Trends(QWidget *parent) :
QWidget(parent),
ui(new Ui::Trends)
{
ui->setupUi(this);
m_UserData.SetManagerType(ManagerType::Ruoyi);
ui->periodCombo->addItems(QStringList() << "1" << "3" << "5" << "10" << "15" << "20" << "30");
ui->periodCombo->setCurrentText("20");
this->LoadTrendsData();
connect(ui->periodCombo,SIGNAL(currentIndexChanged(int)),this,SLOT(periodCombo_currentIndexChanged(int)));
}
Trends::~Trends()
{
delete ui;
}
void Trends::SetUserInfo(UserInfo user)
{
m_UserInfo = user;
}
void Trends::LoadTrendsData()
{
TrendsRequestParam param;
param.token = m_UserInfo.token;
param.period = ui->periodCombo->currentText();
param.tradeDay = ui->tradeDay->text();
if(param.period.isEmpty() || param.token.isEmpty() || param.tradeDay.isEmpty())
{
return;
}
TrendWidget* trend;
if(trendsMap.contains(param.period))
{
ui->stackedWidget->setCurrentWidget(trendsMap[param.period]);
trend = trendsMap[param.period];
}
else
{
//创建新的
trend = new TrendWidget;
trend->setObjectName(param.period);
trendsMap.insert(param.period,trend);
ui->stackedWidget->addWidget(trend);
}
trend->LoadTrendsData(param);
}
void Trends::periodCombo_currentIndexChanged(int index)
{
LoadTrendsData();
}

@ -0,0 +1,33 @@
#ifndef TRENDS_H
#define TRENDS_H
#include <QWidget>
#include "userdata.h"
#include <QStandardItemModel>
namespace Ui {
class Trends;
}
class TrendWidget;
class Trends : public QWidget
{
Q_OBJECT
public:
explicit Trends(QWidget *parent = nullptr);
~Trends();
void SetUserInfo(UserInfo user);
void LoadTrendsData();
private slots:
void periodCombo_currentIndexChanged(int index);
private:
Ui::Trends *ui;
UserData m_UserData;
UserInfo m_UserInfo;
QMap<QString,TrendWidget*> trendsMap;//<period,widget>
};
#endif // TRENDS_H

@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Trends</class>
<widget class="QWidget" name="Trends">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1440</width>
<height>647</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout" stretch="7,4">
<item>
<widget class="QWidget" name="widget" native="true">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QWidget" name="widget_2" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>period</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="periodCombo"/>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>trade_date</string>
</property>
</widget>
</item>
<item>
<widget class="QDateTimeEdit" name="tradeDay">
<property name="date">
<date>
<year>2023</year>
<month>12</month>
<day>1</day>
</date>
</property>
<property name="displayFormat">
<string>yyyy-MM-dd</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QStackedWidget" name="stackedWidget"/>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QTabWidget" name="tabWidget">
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Tab 1</string>
</attribute>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Tab 2</string>
</attribute>
</widget>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

@ -1,95 +0,0 @@
#include "trendswidget.h"
#include "ui_trendswidget.h"
#include <QDebug>
#include <QTableWidgetItem>
#include <QColor>
TrendsWidget::TrendsWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::TrendsWidget)
{
ui->setupUi(this);
m_UserData.SetManagerType(ManagerType::Ruoyi);
}
TrendsWidget::~TrendsWidget()
{
delete ui;
}
void TrendsWidget::SetUserData()
{
}
void TrendsWidget::SetUserInfo(UserInfo user)
{
m_UserInfo = user;
}
void TrendsWidget::LoadTrendsData()
{
QList<QList<QString> > trends = m_UserData.GetTrends(QDate(),m_UserInfo.token);
int rowCount = trends.count();
int columnCount = 0;
//更新到tableview中
if(rowCount > 2)
{
qDebug() << __FUNCTION__ << " trends[0]: " << trends[0];
QStringList headText;
QList<QString> columns = trends[0];
QList<QString> rows0 = trends[1];
QList<QString> rows1 = trends[2];
qDebug() << __FUNCTION__ << " trends[1]: " << trends[1];
qDebug() << __FUNCTION__ << " trends[2]: " << trends[2];
columnCount = columns.count();
ui->tableWidget->setRowCount(trends[1].count());
ui->tableWidget->setColumnCount(columnCount);
for (int column = 0; column < columnCount; ++column) {
headText << columns[column];
}
ui->tableWidget->setHorizontalHeaderLabels(headText);
ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection);
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
ui->tableWidget->setAlternatingRowColors(true);
ui->tableWidget->verticalHeader()->setVisible(false);
// ui->tableWidget->horizontalHeader()->setStretchLastSection(true);
}
//设置首列
int tableRows = trends[1].count();
for(int row = 0; row < tableRows; row++)
{
ui->tableWidget->setRowHeight(row, 24);
QTableWidgetItem *item = new QTableWidgetItem(trends[1][row]);
ui->tableWidget->setItem(row, 0, item);
}
for(int datarow = 2, col = 1; datarow < rowCount; datarow++,col++)
{
for(int tablerow = 0 ; tablerow < tableRows; tablerow++)
{
QTableWidgetItem *item = new QTableWidgetItem(trends[datarow][tablerow]);
if(item->text().toInt() <= 3 && item->text().toInt() > 0)
{
item->setTextColor(Qt::white);
item->setBackground(QBrush(Qt::red));
}
else if(item->text().toInt() <= 6 && item->text().toInt() > 3)
{
item->setTextColor(Qt::white);
item->setBackground(QBrush(QColor(255,157,0)));
}
else if(item->text().toInt() <= 10 && item->text().toInt() > 6)
{
item->setTextColor(Qt::white);
item->setBackground(QBrush(QColor(255,208,0)));
}
ui->tableWidget->setItem(tablerow, col, item);
}
}
}

@ -1,30 +0,0 @@
#ifndef TRENDSWIDGET_H
#define TRENDSWIDGET_H
#include <QWidget>
#include "userdata.h"
#include <QStandardItemModel>
namespace Ui {
class TrendsWidget;
}
class TrendsWidget : public QWidget
{
Q_OBJECT
public:
explicit TrendsWidget(QWidget *parent = nullptr);
~TrendsWidget();
//临时使用,后续需要重新创建
void SetUserData();
void SetUserInfo(UserInfo user);
void LoadTrendsData();
private:
Ui::TrendsWidget *ui;
UserData m_UserData;
UserInfo m_UserInfo;
};
#endif // TRENDSWIDGET_H

@ -1,45 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>TrendsWidget</class>
<widget class="QWidget" name="TrendsWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1440</width>
<height>647</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout" stretch="6,4">
<item>
<widget class="QTableWidget" name="tableWidget">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QTabWidget" name="tabWidget">
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Tab 1</string>
</attribute>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Tab 2</string>
</attribute>
</widget>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
Loading…
Cancel
Save