今天在网上看文章,好多刷网页浏览量的脚本,自己就用Qt的QWebengineView实现了一个:
1)UrlConfig.ini文件
Time:刷新超时时间
ListUrl:URL地址,以逗号隔开
BaseUrl:如果刷新网页URL前缀一样,此处填前缀,ListUrl只需要填Url不同部分
refreshNum:总刷新次数
2)代码分析:
a.包含四个按钮(开始、停止、清除、退出软件),TestBrowser显示操作,WebEngineView加载界面
b.读取配置文件信息
c.定时器超时,设置index值
看一下代码实现:
void setupUI()
{
//读取配置文件
QStringList lst;
QSettings settings(QApplication::applicationDirPath() + "/UrlConfig.ini", QSettings::IniFormat);
settings.setIniCodec("UTF-8");
settings.beginGroup("URL");
lst = settings.value("ListUrl").toStringList();
QString strBaseUrl = settings.value("BaseUrl").toString();
m_nTime = settings.value("Time").toInt();
int num = settings.value("refreshNum").toInt();
settings.endGroup();
//webengineView加载网页
m_pWebView = new QWebEngineView(this);
m_pTextBrowser = new QTextBrowser(this);
QPushButton *pClearBtn = new QPushButton("清除",this);
connect(pClearBtn,&QPushButton::clicked,this,[=](){
m_pTextBrowser->clear();
});
QPushButton *pStartBtn = new QPushButton("开始",this);
connect(pStartBtn,&QPushButton::clicked,this,[=](){
m_nIndex = 0;
m_nCount = 0;
m_pTimer->start(m_nTime);
});
QPushButton *pStopBtn = new QPushButton("停止",this);
connect(pStopBtn,&QPushButton::clicked,this,[=](){
m_pTextBrowser->append("停止加载");
m_nIndex = 0;
m_nCount = 0;
m_pTimer->stop();
});
QPushButton *pQuitBtn = new QPushButton("退出软件",this);
pQuitBtn->setFixedSize(100,50);
connect(pQuitBtn,&QPushButton::clicked,this,[=](){
m_nIndex = 0;
m_nCount = 0;
m_pTimer->stop();
qApp->quit();
});
/*
界面布局
…………………………………………
**/
m_pTimer = new QTimer();
connect(m_pTimer,&QTimer::timeout,this,[=](){
if (m_nIndex >= lst.size())//循环到最后一个URL,重新开始
{
m_nIndex = 0;
m_nCount++;
m_pTextBrowser->append("刷新次数 count: " + QString::number(m_nCount));
}
if (m_nCount == num)//等于最大刷新数,停止刷新
{
m_pTimer->stop();
m_pTextBrowser->append("timer stop");
}
QString strUrl = strBaseUrl + lst.at(m_nIndex++);
m_pWebView->load(strUrl);
m_pTextBrowser->append("load Url: "+ strUrl + " Index: " + QString::number(m_nIndex));
});
}
后续会添加源码和可执行文件链接……