鱼C论坛

 找回密码
 立即注册
查看: 665|回复: 1

PYQT调入HTML后插入网络图片没事 但插入本地图片就报错误

[复制链接]
发表于 2020-4-1 22:13:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. # -*- coding: utf-8 -*-

  2. # Form implementation generated from reading ui file 'Formuntitled.ui'
  3. #
  4. # Created by: PyQt5 UI code generator 5.11.3
  5. #
  6. # WARNING! All changes made in this file will be lost!

  7. import sys
  8. from PyQt5.QtCore import *
  9. from PyQt5.QtGui import *
  10. from PyQt5.QtWidgets import *
  11. from PyQt5.QtWebEngineWidgets import *
  12. from PyQt5 import QtCore, QtGui, QtWidgets
  13. from PyQt5.QtGui import QPalette, QBrush, QPixmap
  14. from PyQt5.QtWidgets import *
  15. from PyQt5.QtCore import *
  16. from PyQt5.QtGui import *
  17. import sys
  18. class MainWindow(QMainWindow):
  19.     def __init__(self):
  20.         super(MainWindow, self).__init__()
  21.         self.setWindowTitle('百度')  #窗口标题
  22.         self.setGeometry(5,30,1355,730)  #窗口的大小和位置设置
  23.         self.browser=QWebEngineView()
  24.         # 加载html代码(这里注意html代码是用三个单引号包围起来的)
  25.         self.browser.setHtml('''<!DOCTYPE html>
  26. <html lang="en">
  27. <head>
  28. <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">
  29. <meta name='apple-mobile-web-app-capable' content='yes' />
  30. <meta name="format-detection" content="telephone=no" />
  31. <meta http-equiv='Content-Type' content='textml;charset=UTF-8' />
  32. <title>移动端</title>
  33. <style>
  34.     *{
  35.   padding: 0;
  36.   margin: 0;
  37. }
  38. #slideshow{
  39.   width: 160px;  
  40.   height: 600px;
  41.   margin: 0 auto; /*设置在页面水平居中*/
  42.   overflow: hidden;
  43.   position: relative;  
  44. }
  45. #slideshow img{
  46.   width: 160px;
  47.   position: absolute; /*图片采取绝对定位,均位于左上角,重叠在一起*/
  48.   top: 0;
  49.   left: 0;
  50.   opacity: 0; /*初始不透明度为0,图片都看不见*/
  51.   transition: opacity 1s linear; /*--重点--定义一个关于透明度的transition*/
  52. }
  53. #slideshow img.active{
  54.   opacity: 1; /*有active类的图片不透明度为1,即显示图片*/
  55. }

  56. </style>
  57. </head>
  58. <body>   
  59. <div id="slideshow">
  60.   <!-- 插入轮播的图片们 -->
  61.     <img class="active" src="这里插入http的网络图片就可以显示成功但本地图片会报错" />
  62.     <img src="C:\Users\Desktop\grgs\WH.jpg" />
  63.     <img src="img/1 (3).jpg" />
  64.     <img src="img/1 (4).jpg" />
  65.     <img src="img/1 (5).jpg" />
  66.     <img src="img/1 (6).jpg" />
  67.     <img src="img/1 (7).jpg" />
  68.     <img src="img/1 (8).jpg" />
  69.     <img src="img/1 (9).jpg" />
  70.     <img src="img/1 (10).jpg" />
  71.     <img src="img/1 (11).jpg" />

  72. </div>
  73. <script>
  74.     //---------主角:轮播图函数-------------
  75. function slideshow() {
  76.   var slideshow=document.getElementById("slideshow"),
  77.   imgs=slideshow.getElementsByTagName("img"), //得到图片们

  78.   current=0; //current为当前活跃的图片编号

  79.   function slideOff() {
  80.     imgs[current].className=""; //图片淡出

  81.   }
  82.   function slideOn() {
  83.     imgs[current].className="active"; //图片淡入

  84.   }

  85.   function changeSlide() { //切换图片的函数
  86.     slideOff();
  87.     current++; //自增1
  88.     if(current>=imgs.length) current=0;
  89.     slideOn();
  90.   }

  91.   //每2s调用changeSlide函数进行图片轮播
  92.   var slideon=setInterval(changeSlide,2000);

  93.   slideshow.οnmοuseοver=function () {
  94.     clearInterval(slideon); //当鼠标移入时清除轮播事件
  95.   }
  96.   slideshow.οnmοuseοut=function () {
  97.     slideon=setInterval(changeSlide,1500); //当鼠标移出时重新开始轮播事件
  98.   }


  99. }

  100. slideshow();
  101. </script>
  102. </body>
  103. </html>
  104. ''')
  105.         
  106.         self.setCentralWidget(self.browser)
  107. if __name__ == '__main__':
  108.     app=QApplication(sys.argv)
  109.     win=MainWindow()
  110.     win.show()
  111.     app.exit(app.exec_())
复制代码



就是那个HW.JPG那里报错
报错是
syntaxerror
(unicode error)'unicodeescape'codec can't decode bytes in position 1738-1739:truncated\UXXXXXXXX escape

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-2 13:08:58 | 显示全部楼层
需要设置为原始字符串,这样试试:

  1. # -*- coding: utf-8 -*-

  2. # Form implementation generated from reading ui file 'Formuntitled.ui'
  3. #
  4. # Created by: PyQt5 UI code generator 5.11.3
  5. #
  6. # WARNING! All changes made in this file will be lost!

  7. import sys
  8. from PyQt5.QtCore import *
  9. from PyQt5.QtGui import *
  10. from PyQt5.QtWidgets import *
  11. from PyQt5.QtWebEngineWidgets import *
  12. from PyQt5 import QtCore, QtGui, QtWidgets
  13. from PyQt5.QtGui import QPalette, QBrush, QPixmap
  14. from PyQt5.QtWidgets import *
  15. from PyQt5.QtCore import *
  16. from PyQt5.QtGui import *
  17. import sys


  18. class MainWindow(QMainWindow):
  19.     def __init__(self):
  20.         super(MainWindow, self).__init__()
  21.         self.setWindowTitle('百度')  # 窗口标题
  22.         self.setGeometry(5, 30, 1355, 730)  # 窗口的大小和位置设置
  23.         self.browser = QWebEngineView()
  24.         # 加载html代码(这里注意html代码是用三个单引号包围起来的)
  25.         self.browser.setHtml(r'''<!DOCTYPE html>
  26. <html lang="en">
  27. <head>
  28. <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">
  29. <meta name='apple-mobile-web-app-capable' content='yes' />
  30. <meta name="format-detection" content="telephone=no" />
  31. <meta http-equiv='Content-Type' content='textml;charset=UTF-8' />
  32. <title>移动端</title>
  33. <style>
  34.     *{
  35.   padding: 0;
  36.   margin: 0;
  37. }
  38. #slideshow{
  39.   width: 160px;  
  40.   height: 600px;
  41.   margin: 0 auto; /*设置在页面水平居中*/
  42.   overflow: hidden;
  43.   position: relative;  
  44. }
  45. #slideshow img{
  46.   width: 160px;
  47.   position: absolute; /*图片采取绝对定位,均位于左上角,重叠在一起*/
  48.   top: 0;
  49.   left: 0;
  50.   opacity: 0; /*初始不透明度为0,图片都看不见*/
  51.   transition: opacity 1s linear; /*--重点--定义一个关于透明度的transition*/
  52. }
  53. #slideshow img.active{
  54.   opacity: 1; /*有active类的图片不透明度为1,即显示图片*/
  55. }

  56. </style>
  57. </head>
  58. <body>   
  59. <div id="slideshow">
  60.   <!-- 插入轮播的图片们 -->
  61.     <img class="active" src="这里插入http的网络图片就可以显示成功但本地图片会报错" />
  62.     <img src="C:\Users\Desktop\grgs\WH.jpg" />
  63.     <img src="img/1 (3).jpg" />
  64.     <img src="img/1 (4).jpg" />
  65.     <img src="img/1 (5).jpg" />
  66.     <img src="img/1 (6).jpg" />
  67.     <img src="img/1 (7).jpg" />
  68.     <img src="img/1 (8).jpg" />
  69.     <img src="img/1 (9).jpg" />
  70.     <img src="img/1 (10).jpg" />
  71.     <img src="img/1 (11).jpg" />

  72. </div>
  73. <script>
  74.     //---------主角:轮播图函数-------------
  75. function slideshow() {
  76.   var slideshow=document.getElementById("slideshow"),
  77.   imgs=slideshow.getElementsByTagName("img"), //得到图片们

  78.   current=0; //current为当前活跃的图片编号

  79.   function slideOff() {
  80.     imgs[current].className=""; //图片淡出

  81.   }
  82.   function slideOn() {
  83.     imgs[current].className="active"; //图片淡入

  84.   }

  85.   function changeSlide() { //切换图片的函数
  86.     slideOff();
  87.     current++; //自增1
  88.     if(current>=imgs.length) current=0;
  89.     slideOn();
  90.   }

  91.   //每2s调用changeSlide函数进行图片轮播
  92.   var slideon=setInterval(changeSlide,2000);

  93.   slideshow.οnmοuseοver=function () {
  94.     clearInterval(slideon); //当鼠标移入时清除轮播事件
  95.   }
  96.   slideshow.οnmοuseοut=function () {
  97.     slideon=setInterval(changeSlide,1500); //当鼠标移出时重新开始轮播事件
  98.   }


  99. }

  100. slideshow();
  101. </script>
  102. </body>
  103. </html>
  104. ''')

  105.         self.setCentralWidget(self.browser)


  106. if __name__ == '__main__':
  107.     app = QApplication(sys.argv)
  108.     win = MainWindow()
  109.     win.show()
  110.     app.exit(app.exec_())
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 17:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表