• 3812阅读
  • 5回复

QWebengine玩转HTML [复制链接]

上一主题 下一主题
离线305750665
 

只看楼主 倒序阅读 楼主  发表于: 2019-04-12








  1. QString readFiledata(const QString& filepath)
  2. {
  3.     QFile file;
  4.     file.setFileName(filepath);
  5.     file.open(QIODevice::ReadOnly);
  6.     QString data = file.readAll();
  7.     file.close();
  8.     return data;
  9. }
  10. void WebView::initControl()
  11. {
  12.     qputenv("QTWEBENGINE_REMOTE_DEBUGGING", "9223");
  13.     m_jQuery = readFiledata(":/WebenginePlay/Resources/jquery.min.js");
  14.     m_jQuery.append("\nvar qt = { 'jQuery': jQuery.noConflict(true) };");
  15.     connect(this, SIGNAL(titleChanged(QString)), SLOT(adjustTitle()));
  16.     connect(this, SIGNAL(loadProgress(int)), SLOT(setProgress(int)));
  17.     connect(this, SIGNAL(loadFinished(bool)), SLOT(finishLoading(bool)));
  18. }
  19. void WebView::loadUrl(QUrl url)
  20. {
  21.     this->load(url);
  22. }
  23. void WebView::adjustTitle()
  24. {
  25.     if (m_progress <= 0 || m_progress >= 100)
  26.         parentWidget()->setWindowTitle(this->title());
  27.     else
  28.         parentWidget()->setWindowTitle(QString("%1 (%2%)").arg(this->title()).arg(m_progress));
  29. }
  30. void WebView::setProgress(int p)
  31. {
  32.     m_progress = p;
  33.     adjustTitle();
  34. }
  35. void WebView::finishLoading(bool)
  36. {
  37.     m_progress = 100;
  38.     adjustTitle();
  39.     QString code = "qt.jQuery('<link>').attr({ rel: \"stylesheet\",type: \"text/css\",href: \"qrc:/WebenginePlay/Resources/rotate.css\"}).appendTo(\"head\"); undefined";
  40.     m_jQuery.append("\n");
  41.     m_jQuery.append(code);
  42.     page()->runJavaScript(m_jQuery);
  43. }
  44. void WebView::highlightAllLinks()
  45. {
  46.     QString code = "qt.jQuery('a').each( function () { qt.jQuery(this).css('background-color', 'yellow') } ); undefined";
  47.     this->page()->runJavaScript(code);
  48. }
  49. void WebView::rotateImages()
  50. {
  51.     QString code = "qt.jQuery('img').addClass(\"header\");";
  52.     this->page()->runJavaScript(code);
  53. }
  54. void WebView::removeGifImages()
  55. {
  56.     QString code = "qt.jQuery('[src*=gif]').remove()";
  57.     this->page()->runJavaScript(code);
  58. }
  59. void WebView::updateBackground()
  60. {
  61.     QString code = "qt.jQuery('body').each( function () { qt.jQuery(this).css('background', 'rgba(200,200,200,100)') } ); undefined";
  62.     this->page()->runJavaScript(code);
  63. }




雨田哥: 群号:853086607
QQ: 3246214072

刘典武-feiyangqingyun:专业各种自定义控件编写+UI定制+输入法定制+视频监控+工业控制+仪器仪表+嵌入式linux+各种串口网络通信,童叟无欺,量大从优,欢迎咨询购买定制!QQ:517216493
在线liulin188

只看该作者 1楼 发表于: 2019-04-12
https://wiki.qt.io/Qt_5.12_Release
https://wiki.qt.io/New_Features_in_Qt_5.12
https://wiki.qt.io/Qt_5.12.0_Known_Issues
https://www.qt.io/blog/qt-5.13.2-released
https://www.qt.io/blog/qt-creator-4.10.2-released
https://wiki.qt.io/Qt_5.12_Tools_and_Versions
离线玖零儛

只看该作者 2楼 发表于: 2019-04-12
支持jQuery哇,太强了
离线liudianwu

只看该作者 3楼 发表于: 2019-04-17
玩得很溜!
欢迎关注微信公众号:Qt实战 (各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发)QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线朝东向西

只看该作者 4楼 发表于: 2019-06-17
QWebengineView上层添加带圆角的QLabel控件,然后QLabel调用了winId(),此时圆角会变成黑色的,请问有人遇到过这个问题么?
离线zxjrainbow

只看该作者 5楼 发表于: 2019-07-10
好内容。又学到了。
快速回复
限100 字节
 
上一个 下一个