Qt Webassembly Qt程序运行到网页上

首先说结论吧,现在这个方式有点鸡肋,交互性的东西都需要js。现阶段不建议使用。下面图片里的坑来自于https://blog.csdn.net/EffectiveReport/article/details/90731000,我这边成功后,有些跟这个说的是一样的。

业务需求

客户要播放摄像头的RTSP视频流。我们做网页的同事没搞过,刚好我这边有个Qt的demo。然后就想着怎么把Qt程序运行到网页上。不能使用ActiveX控件开发技术,因为ActiveX控件开发技术只支持IE,做网页的同事做的东西不能在IE上使用,不清楚什么鬼。

Webassembly环境配置

Qt官方好像指定的有比较适配的版本。我这边使用的Qt5.14.2,然后官方建议的是1.38.27这个版本。

配置地址参考:https://www.jianshu.com/p/fdf74aad806b。主要参考打招来了这个部分。注释修改一部分的python代码,然后去an安装环境。

  print("\n\n\n")
  print("------------------------------------our need url----------------------------------------------")
  print(url)
  print("-----------------------------------------the end-------------------------------------------------------")
  print("\n\n\n") 
try:
    u = urlopen(url)
    mkdir_p(os.path.dirname(file_name))
    with open(file_name, 'wb') as f:
      file_size = get_content_length(u)
      if file_size > 0: print("Downloading: %s from %s, %s Bytes" % (file_name, url, file_size))
      else: print("Downloading: %s from %s" % (file_name, url))

      file_size_dl = 0
      # Draw a progress bar 80 chars wide (in non-TTY mode)
      progress_max = 80 - 4
      progress_shown = 0
      block_sz = 8192
      if not TTY_OUTPUT:
          print(' [', end='')
      while True:
          buffer = u.read(block_sz)
          if not buffer:
              break

          file_size_dl += len(buffer)
          f.write(buffer)
          if file_size:
              percent = file_size_dl * 100.0 / file_size
              if TTY_OUTPUT:
                  status = r" %10d  [%3.02f%%]" % (file_size_dl, percent)
                  print(status, end='\r')
              else:
                  while progress_shown < progress_max * percent / 100:
                      print('-', end='')
                      sys.stdout.flush()
                      progress_shown += 1
      if not TTY_OUTPUT:
          print(']')
  except Exception as e:
    print("Error downloading URL '" + url + "': " + str(e))
    rmfile(file_name)
    return None
  except KeyboardInterrupt as e:
    print("Aborted by User, exiting")
    rmfile(file_name)
    sys.exit(1)

配置地址参考:https://blog.csdn.net/weixin_44088602/article/details/104251524。这个主要参考Webassembly环境配置好后,也就是你随便写个c++的代码可以在网页上运行后,编译Qt的源代码。

编译指令:configure -xplatform wasm-emscripten -platform win32-g++ -nomake tests -nomake examples -prefix %CD%\qtbase -no-warnings-are-errors

配置地址参考:https://www.cnblogs.com/jixiaohua/p/10424941.html。这个主要是里面有一个安装包的exe。不过版本有点低。

Qt使用Webassembly

参考:https://zhuanlan.zhihu.com/p/103772559,就是把编译后的webassembly qmake配置到Qt creator里

 

编译Qt项目

打开Qt creator ----> 配置项目(选择设置的webassembly编译器)---->点击运行即可

 

会生成这些文件

双击.html文件,就会显示在浏览器里了。

  • 1
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值