You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
3.2 KiB

#include "trendwidget.h"
#include "ui_trendwidget.h"
#include <QDebug>
TrendWidget::TrendWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::TrendWidget)
{
ui->setupUi(this);
m_UserData = UserData::Instanse();
}
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);
}
}
}