假設你已經有一個使用QDeclarativeView的程式,你覺得顯示效能始終不夠滿意。如何才能增進程式的效能了?讓我們看看下面這個簡單的程式。
其實,需要的工作遠比你想像的容易。只要稍作修改,就可以透過OpenGL來加速程式了!
from PySide.QtCore import * from PySide.QtGui import * from PySide.QtDeclarative import * class MyView(QDeclarativeView): def __init__(self, src): super(MyView, self).__init__() self.setAttribute(Qt.WA_TranslucentBackground) self.viewport().setAutoFillBackground(False) self.setWindowTitle('My QML Windows') self.setSource(src) self.setResizeMode(QDeclarativeView.SizeRootObjectToView) app = QApplication([]) view = MyView(src="MyView.qml") view.show() app.exec_()
其實,需要的工作遠比你想像的容易。只要稍作修改,就可以透過OpenGL來加速程式了!
from PySide.QtCore import * from PySide.QtGui import * from PySide.QtOpenGL import * from PySide.QtDeclarative import * class MyView(QDeclarativeView): def __init__(self, src, useOpenGL=False): super(MyView, self).__init__() if useOpenGL: format = QGLFormat.defaultFormat() format.setSampleBuffers(False) glw = QGLWidget(format) glw.setAutoFillBackground(False) self.setViewport(glw) self.setAttribute(Qt.WA_TranslucentBackground) self.viewport().setAutoFillBackground(False) self.setWindowTitle('My QML Windows') self.setSource(src) self.setResizeMode(QDeclarativeView.SizeRootObjectToView) app = QApplication([]) view = MyView(src="MyView.qml", useOpenGL=True) view.show() app.exec_()
留言