【PyQt4实例8】SVG格式图片的显示【转】
来源:互联网 发布:比美图秀秀好的软件 编辑:程序博客网 时间:2024/06/06 00:31
转载上一实例相同的地址,但是发现有些BUG,修改了,代码如下:
#-*- coding:utf-8 -*-from PyQt4.QtCore import *from PyQt4.QtGui import *from PyQt4 import QtSvgfrom PyQt4 import QtXmlQTextCodec.setCodecForTr(QTextCodec.codecForName("utf-8"))class SvgWidget(QtSvg.QSvgWidget): def __init__(self): super(SvgWidget,self).__init__() self.render = self.renderer() self.mousePresPos = QPoint(0,0) self.newPos = QPoint(20,20) def wheelEvent(self, e): self.diff = 0.1 self.size = QSize() self.size = self.render.defaultSize() self.mywidth = self.size.width() self.myheight = self.size.height() if e.delta() > 0: self.mywidth = self.width() + self.width()*self.diff self.myheight = self.height() + self.height()*self.diff else: self.mywidth = self.width() - self.width()*self.diff self.myheight = self.height() - self.height()*self.diff self.resize(self.mywidth,self.myheight)class SvgWindonw(QScrollArea): def __init__(self): super(SvgWindonw,self).__init__() self.svgwidget = SvgWidget() self.setWidget(self.svgwidget) self.OK = False def setFile(self,filename): self.svgwidget.load(filename) myrender = self.svgwidget.renderer() self.svgwidget.resize(myrender.defaultSize()) self.OK = True return myrender.defaultSize() def mousePressEvent(self, e): if self.OK: self.mousePresPos = e.pos() self.svgwidget.newPos.setX(self.horizontalScrollBar().value()) self.svgwidget.newPos.setY(self.verticalScrollBar().value()) e.accept() else: return def mouseMoveEvent(self, e): if self.OK: self.horizontalScrollBar().setValue(self.svgwidget.newPos.x()-(self.mousePresPos.x() - e.pos().x())) self.verticalScrollBar().setValue(self.svgwidget.newPos.y() - (self.mousePresPos.y() - e.pos().y())) self.horizontalScrollBar().update() self.verticalScrollBar().update() e.accept() else: returnclass MainWindow(QMainWindow): def __init__(self): super(MainWindow,self).__init__() self.setWindowTitle(self.tr("图片浏览器")) self.svgwindow = SvgWindonw() self.createbutton() self.setCentralWidget(self.svgwindow) def slotopenfile(self): filename = QFileDialog.getOpenFileName(self,"打开文件","/","svg files(*.svg)") if filename : size = self.svgwindow.setFile(filename) self.resize(size) else: return def createbutton(self): mainmenu = self.menuBar().addMenu(self.tr("文件")) myaction = QAction(self.tr("打开"),self) self.connect(myaction,SIGNAL("triggered()"),self.slotopenfile) mainmenu.addAction(myaction) if __name__ == '__main__': import sys app = QApplication(sys.argv) mainwindow = MainWindow() mainwindow.show() sys.exit(app.exec_())
0 0
- 【PyQt4实例8】SVG格式图片的显示【转】
- 在eclipse中显示不出来.svg格式的图片
- SVG格式图片的放大
- Visual studio2010不显示.svg格式图片
- Visual studio2010不显示.svg格式图片
- qt中svg格式图片的旋转
- SVG格式的图片来优化网站
- qt 加载SVG格式的图片
- Android加载html中的svg格式图片进行显示的两种方式
- svg显示图片问题
- 保存图片为svg格式
- inkscape将png图片转换为svg格式的矢量图
- SVG格式的地图显示 将一个.svg引入到.htm中
- 关于SVG图片不显示
- 显示base64格式的图片
- svg webtopo原型4-图片的动态显示
- Qt实现简单图形绘制,双缓冲机制和显示SVG格式图片
- SVG图片的应用
- 最长上升子序列的求法
- Android程序如何(单步)调试
- 外包团队如何做好需求控制
- hdu 1867 A + B for you again (kmp)
- 将看板应用于软件开发:从敏捷到精益
- 【PyQt4实例8】SVG格式图片的显示【转】
- json的使用
- go语言工程管理
- 04 如何将ubuntu环境设置为中文
- android超时问题
- Hadoop fs命令
- Oracle数据库GLOBAL_NAMES参数的详细研究
- sendRedirect() forward() 区别 选择
- Merge Sorted Array