如何在PyQt4 MainWindow中嵌入Pygame显示?

时间:2019-02-03 18:31:42

标签: python pygame pyqt4

我正在使用PyQt4编程GUI,并希望将Pygame显示器嵌入为中央小部件。

我有一个 QMainWindow ,它使用另一个类中的pygame元素作为中央窗口小部件。我已经尝试过使用pygame曲面,并且到目前为止它已经可以工作了……但是我担心的事实是,pygame曲面是用于将图像绘制到屏幕上的。 例如 pygame.display.update() 不适用于共同的表面

class GameWidget(QWidget):
    def __init__(self, width, height, parent=None):
        super(GameWidget, self).__init__(parent)
        pygame.init()
        surface = pygame.Surface((width * 1.3, height * 0.4))
        surface.fill((64, 128, 192, 224))
        w=surface.get_width()
        h=surface.get_height()

        pygame.draw.circle(surface, (255, 255, 255, 255), (300, 300), 50)
        self.data=surface.get_buffer().raw
        self.image=QtGui.QImage(self.data,w,h,QtGui.QImage.Format_RGB32)

    def paintEvent(self,event):
        qp=QtGui.QPainter()
        qp.begin(self)
        qp.drawImage(width / 7, height / 6, self.image)
        qp.end()

class MainWindow(QtGui.QMainWindow):
    def __init__(self, width, height, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setCentralWidget(GameWidget(height, width))
        self.setGeometry(200, 50, width, height)
        self.show()

我只想知道如何在我的PyQt4 MainWindow中嵌入pygame显示器。目前,我的曲面内部有一个圆形,但从长远来看,我认为这是行不通的。

0 个答案:

没有答案