feat: 增加trendwidget

master
laixingyu 3 years ago
parent b6eafad1f1
commit 061cabcd2e

@ -0,0 +1,97 @@
#include "trendwidget.h"
#include "ui_trendwidget.h"
#include <QDebug>
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 &param)
{
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<QList<QString> > 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<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);
}
}
}

@ -0,0 +1,28 @@
#ifndef TRENDWIDGET_H
#define TRENDWIDGET_H
#include <QWidget>
#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

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>TrendWidget</class>
<widget class="QWidget" name="TrendWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>839</width>
<height>639</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTableWidget" name="tableWidget">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
Loading…
Cancel
Save