无聊的国庆,总得做点什么好玩的是不是,那就写代码获取大乐透,让后按照自己的算法推测下一期的结果吧。
话不多说,上代码
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
initDataBase();
auto db = QSqlDatabase::database();
if(db.isValid())
{
QSqlTableModel *model = new QSqlTableModel(this);
model->setTable(his_tb_name);
model->setSort(0,Qt::DescendingOrder);
model->select();
model->setHeaderData(0, Qt::Horizontal, tr("期号"));
model->setHeaderData(1, Qt::Horizontal, tr("号码"));
model->setHeaderData(2, Qt::Horizontal, tr("开奖日期"));
ui->tableView->setModel(model);
ui->tableView->resizeColumnsToContents();
Log(" model db tables "<<model->database().tables());
}
connect(this,&Widget::finishedCurrentPage,this,&Widget::onCurrentPageFinished,Qt::QueuedConnection);
initialChat();
addLog(QSysInfo::buildAbi());
}
上述代码的作用就是UI入口,主要是创建的sqlite数据库,然后显示最近获取的期号数据
void initDataBase()
{
QString log;
auto db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("./lotus.db");
auto ret = db.open();
log.append(QString("open db ")+ (ret?" ok ":"error"+db.lastError().text()));
auto tables = db.tables();
if(!tables.contains(his_tb_name))
{
QString sql =QString("create table %1 (%2 text PRIMARY KEY NOT NULL, %3 text,%4 text);").arg(his_tb_name).arg(Serial_No).arg(front_no).arg(end_no);
auto retsql = db.exec(sql);
log.append( " \n create table "+db.lastError().text());
}
qDebug()<<" log "<<log;
}
上述代码和名字一致,主要是创建了sqlite和对应的表。
const QString lotusUrl ="https://webapi.sportt