我正在使用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显示器。目前,我的曲面内部有一个圆形,但从长远来看,我认为这是行不通的。