| | |
| | | { |
| | | ui->setupUi(this); |
| | | |
| | | // 注册元类型 |
| | | qRegisterMetaType<QVector<QVector<QString>>>("QVector<QVector<QString>>"); |
| | | qRegisterMetaType<QVector<QVector<QString>>>("QVector<QVector<QString>> &"); |
| | | |
| | | // ui相关 |
| | | ui->dateEdit->setDate(QDate::currentDate()); |
| | | m_model = new QStandardItemModel(1,9,this); |
| | | |
| | | m_customModel = new CustomSortProxyModel; // 可自定义排序的模型 |
| | | m_customModel->setSourceModel(m_model); // 设置源模型 |
| | | |
| | | //ui->tableView->setModel(m_model); |
| | | ui->tableView->setModel(m_customModel); |
| | | // 表格列排序 |
| | | ui->tableView->setSortingEnabled(true); |
| | | |
| | | QStringList labels; |
| | | labels<<"股票名字"<<"股票代号"<<"市值(亿)"<<"涨跌幅"<<"收盘价"<<"成交额(亿)"<<"成交量"<<"换手率"<<"PE_TTM"; |
| | | m_model->setHorizontalHeaderLabels(labels); |
| | | |
| | | initMySQL(); // 初始化MySQL |
| | | |
| | | // 处理数据爬取的操作 |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | void HistoryData::on_pushButton_search_clicked() |
| | | { |
| | | // 提示查询等待 |
| | | ui->statusbar->showMessage("查询中...请耐心等待结果..."); |
| | | |
| | | QString searchTime = ui->dateEdit->text(); |
| | | qDebug()<<"查询的时间:"<<searchTime; |
| | | QString sql = QString("select name,code,market_capital,percent,close,amount,volume,turnover_rate,pe_ttm from stock_day_info where time_trade = '%1'").arg(searchTime); |
| | | qDebug()<<"sql:"<<sql; |
| | | |
| | | m_modelDatas.clear(); // 清空数组中的数据 |
| | | |
| | | qint64 tt = QDateTime::currentMSecsSinceEpoch(); |
| | | QSqlQuery que(db); |
| | | if(que.exec(sql)){ |
| | | qDebug()<<"select ok"; |
| | | m_model->setRowCount(0); // 重置模型行数 |
| | | int rows = 0; |
| | | while (que.next()) { |
| | | QString name = que.value(0).toString(); |
| | | QString code = que.value(1).toString(); |
| | | QString market_capital = QString::number(que.value(2).toDouble()/100000000); |
| | | QString percent = que.value(3).toString(); |
| | | QString close = que.value(4).toString(); |
| | | QString amount = QString::number(que.value(5).toDouble()/100000000); |
| | | QString volume = que.value(6).toString(); |
| | | QString turnover_rate = que.value(7).toString(); |
| | | QString pe_ttm = que.value(8).toString(); |
| | | |
| | | m_modelDatas.append({name,code,market_capital,percent,close,amount,volume,turnover_rate,pe_ttm}); |
| | | |
| | | QList<QStandardItem*> items; |
| | | items.append(new QStandardItem(name)); |
| | | items.append(new QStandardItem(code)); |
| | | items.append(new QStandardItem(market_capital)); |
| | | //items.append(new QStandardItem(percent)); |
| | | QStandardItem *percentItem = new QStandardItem(percent); |
| | | if(percent.toDouble() > 0){ |
| | | percentItem->setData(QColor("red"),Qt::DecorationRole); // 添加一个装饰的颜色为红色 |
| | | percentItem->setData(QColor("red"),Qt::TextColorRole); // 将字体颜色设置为红色 |
| | | items.at(0)->setData(QColor("red"),Qt::TextColorRole); // 将股票名字设置为红色 |
| | | } |
| | | else if(percent.toDouble() < 0){ |
| | | percentItem->setData(QColor("green"),Qt::BackgroundColorRole); |
| | | items.at(0)->setData(QColor("green"),Qt::TextColorRole); |
| | | } |
| | | items.append(percentItem); |
| | | |
| | | items.append(new QStandardItem(close)); |
| | | items.append(new QStandardItem(amount)); |
| | | items.append(new QStandardItem(volume)); |
| | | items.append(new QStandardItem(turnover_rate)); |
| | | items.append(new QStandardItem(pe_ttm)); |
| | | m_model->appendRow(items); |
| | | rows++; |
| | | } |
| | | qDebug()<<"查询到行数:"<<rows; |
| | | |
| | | }else{ |
| | | qDebug()<<"select fail"<<que.lastError().text(); |
| | | } |
| | | // 最后提示完成 |
| | | qint64 need = QDateTime::currentMSecsSinceEpoch()-tt; |
| | | ui->statusbar->showMessage(QString("耗时:%1 毫秒,查询完成.").arg(QString::number(need)),10*1000); |
| | | ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); |
| | | //emit sendHistoryModel(m_modelDatas); // 给信息展示发模型 |
| | | |
| | | ui->textBrowser->append(QString("查询日期:%1 耗时: %2 毫秒 查到条数:%3").arg(searchTime).arg(QString::number(need)).arg(QString::number(m_model->rowCount()))); |
| | | } |
| | | |
| | | void HistoryData::on_pushButton_2_clicked() |
| | | { |
| | | //emit sendHistoryModel(m_modelDatas); // 给信息展示发模型 |
| | | emit sendHistoryModel(m_model); |
| | | } |