调用函数而不是使用raw_input时,PyQt4标签崩溃了吗?

时间:2017-12-08 01:25:59

标签: python-2.7 function pyqt pyqt4

我将原始代码简化为一小部分仍然可以重现该问题。以下代码适用于action = raw_input('next action? ')而不是action = self.fake()。为什么??!!具体来说,'label'窗口将使用类函数挂起并崩溃,但使用用户输入将显示两个重叠的图像没有问题。我无法理解这两者是如何影响PyQt的,特别是因为在图像更新后进行了更改。

import time
import sys

from PyQt4 import QtGui

class Basement(object):

    def __init__(self):

        self.app = QtGui.QApplication(sys.argv)
        self.label = QtGui.QLabel()

    def update_image(self):
        self.im = QtGui.QImage('n-wall.png')
        painter = QtGui.QPainter()
        c_image = QtGui.QImage('bed.png')
        painter.begin(self.im)
        painter.drawImage(10, 10, c_image)
        painter.end()
        self.label.setPixmap(QtGui.QPixmap.fromImage(self.im))
        self.label.show()

    def fake(self):
        return 'left'


    def play_game(self):

        ### Update graphics / text
        self.update_image()

        ### Decide action
        action = self.fake()
        #action = raw_input('next action? ')

        time.sleep(5)


B = Basement()
B.play_game()

0 个答案:

没有答案