| | |
| | | connect(m_regular,SIGNAL(getClosePriceSignal(QString)),m_getStockList,SLOT(getLastClosePrice(QString))); |
| | | connect(m_getStockList,SIGNAL(sendClosePrice(QString,QString)),m_regular,SLOT(showClosePrice(QString,QString))); |
| | | |
| | | connect(m_getStockList,SIGNAL(sendCodeNames(QMap<QString,QString>&)),m_history,SLOT(putCodeNames(QMap<QString,QString>&))); |
| | | |
| | | } |
| | |
| | | m_model->appendRow(rowItems); |
| | | } |
| | | } |
| | | |
| | | // 发射信号 |
| | | emit sendCodeNames(m_codeNames); |
| | | } |
| | | |
| | | |
| | |
| | | void sendChartData(QSplineSeries*); // 曲线 |
| | | void sendInfoMess(QString); // 发送消息提示 |
| | | void sendClosePrice(QString,QString); // 发送最新的价格:名字、价格 |
| | | void sendCodeNames(QMap<QString, QString> &); // 给历史分析界面发送名字代号信息 |
| | | |
| | | private slots: |
| | | void on_pushButton_get_clicked(); |
| | |
| | | |
| | | #include <QMessageBox> |
| | | #include <QDebug> |
| | | #include <QDateTime> |
| | | |
| | | HistoryData::HistoryData(QWidget *parent) : |
| | | QMainWindow(parent), |
| | | ui(new Ui::HistoryData) |
| | | { |
| | | ui->setupUi(this); |
| | | |
| | | initMySQL(); // 初始化MySQL |
| | | } |
| | | |
| | | HistoryData::~HistoryData() |
| | |
| | | delete ui; |
| | | } |
| | | |
| | | void HistoryData::on_pushButton_clicked() |
| | | void HistoryData::initMySQL() |
| | | { |
| | | |
| | | //添加一个数据库 |
| | | QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL"); //括号内要写出数据库的类型 |
| | | db=QSqlDatabase::addDatabase("QMYSQL"); //括号内要写出数据库的类型 |
| | | //设置数据库 |
| | | db.setHostName("127.0.0.1"); //设置数据库的主机ip |
| | | //设置数据库的用户名 |
| | |
| | | qDebug()<<"mysql conn ok"; |
| | | } |
| | | } |
| | | |
| | | void HistoryData::on_pushButton_clicked() |
| | | { |
| | | |
| | | QSqlQuery que(db); |
| | | QString sql = "select * from stock_day_info"; |
| | | if(que.exec(sql)){ |
| | | qDebug()<<"select ok"; |
| | | }else{ |
| | | qDebug()<<"select fail"<<que.lastError().text(); |
| | | } |
| | | } |
| | | |
| | | void HistoryData::on_pushButton_update_clicked() |
| | | { |
| | | // 把5000支股票挨个获取到,然后进行数据保存,存到表格中 |
| | | // 更新的时候,默认支持10年的数据查询 |
| | | |
| | | QString time_tar=QString::number(QDateTime::currentMSecsSinceEpoch()); |
| | | QString dayCnt=QString::number(3000); |
| | | QString type = "day"; // day week month |
| | | for(auto code:m_codeNames.keys()){ |
| | | QString url = QString("https://stock.xueqiu.com/v5/stock/chart/kline.json?symbol=%1&begin=%2&period=%3&type=before&count=-%4&indicator=kline,pe,market_capital,ma").arg(code) |
| | | .arg(time_tar).arg(type).arg(dayCnt); |
| | | qDebug()<<"url:"<<url; |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | void HistoryData::putCodeNames(QMap<QString, QString> &codeNames) |
| | | { |
| | | m_codeNames = codeNames; |
| | | qDebug()<<"size:"<<m_codeNames.size(); |
| | | } |
| | |
| | | #define HISTORYDATA_H |
| | | |
| | | #include <QMainWindow> |
| | | #include <QMap> |
| | | #include <QSqlDatabase> |
| | | #include <QSqlError> |
| | | #include <QSqlQuery> |
| | |
| | | explicit HistoryData(QWidget *parent = 0); |
| | | ~HistoryData(); |
| | | |
| | | void initMySQL(); |
| | | |
| | | private slots: |
| | | void on_pushButton_clicked(); |
| | | |
| | | void on_pushButton_update_clicked(); |
| | | |
| | | void putCodeNames(QMap<QString,QString> &codeNames); |
| | | |
| | | private: |
| | | Ui::HistoryData *ui; |
| | | |
| | | QSqlDatabase db; |
| | | |
| | | QMap<QString,QString> m_codeNames; // 股票代号和名字 |
| | | }; |
| | | |
| | | #endif // HISTORYDATA_H |