From 061cabcd2e35963d149f66d2a1415ec288cb0505 Mon Sep 17 00:00:00 2001 From: laixingyu Date: Thu, 14 Dec 2023 14:46:45 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0trendwidget?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- widget/trendwidget.cpp | 97 ++++++++++++++++++++++++++++++++++++++++++ widget/trendwidget.h | 28 ++++++++++++ widget/trendwidget.ui | 31 ++++++++++++++ 3 files changed, 156 insertions(+) create mode 100644 widget/trendwidget.cpp create mode 100644 widget/trendwidget.h create mode 100644 widget/trendwidget.ui diff --git a/widget/trendwidget.cpp b/widget/trendwidget.cpp new file mode 100644 index 0000000..e8532f2 --- /dev/null +++ b/widget/trendwidget.cpp @@ -0,0 +1,97 @@ +#include "trendwidget.h" +#include "ui_trendwidget.h" +#include + +TrendWidget::TrendWidget(QWidget *parent) : + QWidget(parent), + ui(new Ui::TrendWidget) +{ + ui->setupUi(this); + m_UserData.SetManagerType(ManagerType::Ruoyi); +} + +TrendWidget::~TrendWidget() +{ + delete ui; +} + +void TrendWidget::SetUserInfo(UserInfo user) +{ + m_UserInfo = user; +} + +void TrendWidget::LoadTrendsData(const TrendsRequestParam ¶m) +{ + if(param.period == m_TrendParam.period && param.tradeDay == m_TrendParam.tradeDay && param.token == m_TrendParam.token) + { + return; + } + if(param.period.isEmpty()) + { + return; + } + ui->tableWidget->clear(); + m_TrendParam = param; + QList > trends = m_UserData.GetTrends(param); + int rowCount = trends.count(); + int columnCount = 0; + //更新到tableview中 + if(rowCount > 2) + { + qDebug() << __FUNCTION__ << " trends[0]: " << trends[0]; + QStringList headText; + QList columns = trends[0]; + QList rows0 = trends[1]; + QList 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); + } + } +} diff --git a/widget/trendwidget.h b/widget/trendwidget.h new file mode 100644 index 0000000..50c700b --- /dev/null +++ b/widget/trendwidget.h @@ -0,0 +1,28 @@ +#ifndef TRENDWIDGET_H +#define TRENDWIDGET_H + +#include +#include "userdata.h" + +namespace Ui { +class TrendWidget; +} + +class TrendWidget : public QWidget +{ + Q_OBJECT + +public: + explicit TrendWidget(QWidget *parent = nullptr); + ~TrendWidget(); + void SetUserInfo(UserInfo user); + void LoadTrendsData(const TrendsRequestParam& param); + +private: + Ui::TrendWidget *ui; + UserData m_UserData; + UserInfo m_UserInfo; + TrendsRequestParam m_TrendParam; +}; + +#endif // TRENDWIDGET_H diff --git a/widget/trendwidget.ui b/widget/trendwidget.ui new file mode 100644 index 0000000..7d997c6 --- /dev/null +++ b/widget/trendwidget.ui @@ -0,0 +1,31 @@ + + + TrendWidget + + + + 0 + 0 + 839 + 639 + + + + Form + + + + + + + 16777215 + 16777215 + + + + + + + + +