假設你已經有一個使用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_()
留言