• 186阅读
  • 2回复

QWebKit组件无法弹出路由器登陆窗,求助! [复制链接]

上一主题 下一主题
离线mugua001
 

只看楼主 倒序阅读 楼主  发表于: 2020-11-08
使用QWebkit组件学习写一个浏览器,可以弹出JS窗口,点击网页链接自动弹出新窗口中打开,可以打开HTTPS,但是家里的 网件路由器,无法弹出登陆窗口。求助



离线lixinwei

只看该作者 1楼 发表于: 2020-11-08
如果你的路由器对话框是类似于浏览器登录ftp的那种对话框
(注:我没有安装QtWebkit,以下代码不保证完全可用)
自定义槽函数void onAuthenticationRequired(QNetworkReply *reply, QAuthenticator *authenticator),也可以取其他名字,在这个函数中:
  1. QDialog dialog(this);
  2. //设置dialog的标题、大小,添加用户名、密码的QLabel、QLineEdit以及确定、取消按钮,将确定按钮的clicked信号与dialog的accept槽函数关联,将取消按钮的clicked信号与dialog的reject槽函数关联。具体代码省略
  3. if(dialog.exec()==QDialog::Accepted){
  4. //从QLineEdit中获取用户名和密码,分别保存到username和password变量中。具体代码省略
  5. authenticator->setUser(username);
  6. authenticator->setPassword(password);
  7. }else{
  8. *authenticator = QAuthenticator();
  9. }

然后将QWebPage的networkAccessManager()的authenticationRequired信号同上面的槽函数关联起来
离线mugua001

只看该作者 2楼 发表于: 2020-11-09
回 lixinwei 的帖子
lixinwei:如果你的路由器对话框是类似于浏览器登录ftp的那种对话框
(注:我没有安装QtWebkit,以下代码不保证完全可用)
自定义函数onAuthenticationRequired(QNetworkReply *reply, QAuthenticator *authenticator),也可以取其他名字,在这个函数中:
QDialog dialog(this);
//设置dialo .. (2020-11-08 19:37) 

谢谢帮助,我测试一下。
快速回复
限100 字节
 
上一个 下一个