From 987254bf420571a7b89391d8227569a1b5774019 Mon Sep 17 00:00:00 2001 From: wumu <mayi@mayi.com> Date: 星期五, 21 二月 2025 23:25:48 +0800 Subject: [PATCH] 250221 --- getstocklist.cpp | 103 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 97 insertions(+), 6 deletions(-) diff --git a/getstocklist.cpp b/getstocklist.cpp index 61776ef..4d3f1aa 100644 --- a/getstocklist.cpp +++ b/getstocklist.cpp @@ -7,6 +7,10 @@ #include <QJsonObject> #include <QJsonArray> #include <QLibrary> // 鐢ㄤ簬鍔犺浇dll鍔ㄦ�佸簱鐨勭被 +#include <QDateTime> + + +#pragma execution_character_set("utf-8") GetStockList::GetStockList(QWidget *parent) : QMainWindow(parent), @@ -16,10 +20,14 @@ ui->pushButton_get->hide(); ui->statusbar->hide(); + // 娉ㄥ唽鍏冪被鍨� + qRegisterMetaType<QVector<QVector<QString>>>("QVector<QVector<QString>> &"); // 鏂规2: // 濡傛灉https 璁块棶鐨勬椂鍊欙紝杩樻槸鐖彇澶辫触锛屽彲浠ヤ唬鐮佸姞杞藉姩鎬佸簱鏉ユ敮鎸� // 鍓嶆彁鏉′欢鏄妸2涓猟ll鍔ㄦ�佸簱鎷疯礉鐨勭敓鎴愮洰褰曚腑:libeay32.dll 鍜� ssleay32.dll // 鎷疯礉鍒扮敓鎴愮洰褰曪紝灏卞彲浠ョ洿鎺ュ姞杞� + // 鑻ユ槸msvc 64bit鐨勭紪璇戝櫒锛岄渶瑕佷笅杞藉搴斾綅鏁扮殑dll搴撴潵鎷疯礉鍗冲彲 -- openssl-1.0.2q-x64_86-win64.zip + QLibrary lb("libeay32.dll"); if(lb.load()){ qDebug()<<"load libeay32.dll 鎴愬姛"; @@ -174,10 +182,10 @@ // 鏀寔缂栬緫妗嗙殑妯$硦鍖归厤 m_completer = new QCompleter(this); - m_completer->setModel(m_customModel); + m_completer->setModel(m_customModel); // 鍏宠仈鍖呭惈鎵�鏈夊尮閰嶅唴瀹圭殑妯″瀷鎴栬�呭瓧绗︿覆閾捐〃 m_completer->setCaseSensitivity(Qt::CaseInsensitive); // 涓嶅尯鍒嗗ぇ灏忓啓 m_completer->setCompletionMode(QCompleter::PopupCompletion); // 鑷姩鏄剧ず涓嬫媺妗� - m_completer->setFilterMode(Qt::MatchStartsWith); // 鍓嶇紑鍖归厤 + m_completer->setFilterMode(Qt::MatchContains); // 鍓嶇紑鍖归厤銆佸寘鍚�佸悗缂� ui->lineEdit_search->setCompleter(m_completer); // 鍏宠仈鍖归厤鐨勬帶浠� } @@ -265,6 +273,9 @@ m_model->appendRow(rowItems); } } + + // 鍙戝皠淇″彿 + emit sendCodeNames(m_codeNames); } @@ -525,9 +536,16 @@ if(ma5 >= open && ma10 >= open && ma20 >= open && ma30 >= open && ma5 <= close && ma10 <= close && ma20 <= close && ma30 <= close){ qDebug()<<"涓�闃崇┛鍥涚嚎:"<< code <<curDateTime<<" 浠锋牸:"<<close << "閲忚兘姣�:"<<volume_rate; - QString info = QString("<font size=8 color=red> %3 %4 涓�闃崇┛鍥涚嚎:%1 浠锋牸:%2 閲忚兘姣�:%5 鍛ㄦ湡:%6 甯傚��:%7浜�</font>").arg(curDateTime).arg(close).arg(code).arg(m_codeNames[code]).arg(volume_rate) - .arg(m_dateType).arg(market_cap/100000000.0); - emit sendInfoMess(info); + if(volume_rate > 4){ + QString info = QString("<font size=8 color=blue> %3 %4 涓�闃崇┛鍥涚嚎:%1 浠锋牸:%2 閲忚兘姣�:%5 鍛ㄦ湡:%6 甯傚��:%7浜�</font>").arg(curDateTime).arg(close).arg(code).arg(m_codeNames[code]).arg(volume_rate) + .arg(m_dateType).arg(market_cap/100000000.0); + emit sendInfoMess(info); + }else{ + QString info = QString("<font size=8 color=red> %3 %4 涓�闃崇┛鍥涚嚎:%1 浠锋牸:%2 閲忚兘姣�:%5 鍛ㄦ湡:%6 甯傚��:%7浜�</font>").arg(curDateTime).arg(close).arg(code).arg(m_codeNames[code]).arg(volume_rate) + .arg(m_dateType).arg(market_cap/100000000.0); + emit sendInfoMess(info); + } + } } @@ -953,12 +971,14 @@ void GetStockList::on_pushButton_search_clicked() { + ui->tableView->clearSelection(); QString condition = ui->lineEdit_search->text(); for(int i =0;i<m_customModel->rowCount();++i){ if(m_customModel->data(m_customModel->index(i,0)).toString() == condition || m_customModel->data(m_customModel->index(i,1)).toString() == condition) { - ui->tableView->setCurrentIndex(m_customModel->index(i,0)); + //ui->tableView->setCurrentIndex(m_customModel->index(i,0)); + ui->tableView->selectRow(i); break; } } @@ -968,3 +988,74 @@ { on_pushButton_search_clicked(); } + +void GetStockList::showHistoryModelData(QVector<QVector<QString>> &model) // 浠庡巻鍙查偅杈瑰皢鏁版嵁鍙戣繃鏉� +{ + m_model->setRowCount(model.size()); + for(int i=0;i<model.size();++i){ + qDebug()<<"i="<<i; + for(int j=0;j<model.at(0).size();++j){ + //QString str = model[i][j]; + //qDebug()<<str; + m_model->setItem(i,j,new QStandardItem(model[i][j])); + if(j<3){ + m_model->setItem(i,j,new QStandardItem(model[i][j])); + if(j==2){ + m_model->setItem(i,j+1,new QStandardItem(model[i][j])); + } + }else{ + + m_model->setItem(i,j+1,new QStandardItem(model[i][j])); + } + + } + } + qDebug()<<"鍘嗗彶鍒颁俊鎭祴鍊煎畬鎴�"; +} + +void GetStockList::showHistoryModelData(QStandardItemModel *model) +{ + + //ui->tableView->setModel(model); + QVector<QVector<QString>> vec; + for(int i=0;i<model->rowCount();++i){ + QString row; + QVector<QString> tmp; + + m_codeNames[model->item(i,1)->text()] = model->item(i,0)->text(); + + for(int j=0;j<model->columnCount();++j){ + row+=model->item(i,j)->text()+" "; + tmp.append(model->item(i,j)->text()); + } + qDebug()<<i<<row; + vec.append(tmp); + } + qDebug()<<"vec size:"<<vec.size(); + qDebug()<<"鍘嗗彶鍒颁俊鎭祴鍊煎畬鎴�"; + qDebug()<<QDateTime::currentDateTime(); + m_model->setRowCount(0); + for(int i=0;i<vec.size();++i){ + QList<QStandardItem*> items; + for(int j=0;j<vec.at(0).size();++j){ + items.append(new QStandardItem(vec.at(i).at(j))); + if(j==2){ + items.append(new QStandardItem(vec.at(i).at(j))); + } + if(j==3){ + QStandardItem *percentItem = items.back(); + if(percentItem->text().toDouble() > 0){ + percentItem->setData(QColor("red"),Qt::DecorationRole); // 娣诲姞涓�涓楗扮殑棰滆壊涓虹孩鑹� + percentItem->setData(QColor("red"),Qt::TextColorRole); // 灏嗗瓧浣撻鑹茶缃负绾㈣壊 + items.at(0)->setData(QColor("red"),Qt::TextColorRole); // 灏嗚偂绁ㄥ悕瀛楄缃负绾㈣壊 + } + else if(percentItem->text().toDouble() < 0){ + percentItem->setData(QColor("green"),Qt::BackgroundColorRole); + items.at(0)->setData(QColor("green"),Qt::TextColorRole); + } + } + } + m_model->appendRow(items); + } + qDebug()<<QDateTime::currentDateTime(); +} -- Gitblit v1.8.0