1

次の例を検討してください。

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from mplayer import *


class mplayerStarter(QMainWindow):
    def __init__(self, parent=None):
        super(mplayerStarter, self).__init__(parent)
        the_button = QPushButton('Start Mplayer')
        the_button.clicked.connect(self.start)
        self.setCentralWidget(the_button)

    def start(self):
        player = Player()
        player.loadfile('/tmp/video.mp4')

if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    form = mplayerStarter()
    form.show()
    app.exec_()

プログラムを起動してボタンを押すと、ビデオは表示されますが、すぐに消えます。これを修正する方法はありますか?

4

1 に答える 1

2

ガベージコレクションされている可能性があると思います。これを試して:

class mplayerStarter(QMainWindow):
    def __init__(self, parent=None):
        super(mplayerStarter, self).__init__(parent)
        the_button = QPushButton('Start Mplayer')
        the_button.clicked.connect(self.start)
        self.setCentralWidget(the_button)
        self.player = None

    def start(self):
        self.player = Player()
        self.player.loadfile('/tmp/video.mp4')
于 2011-06-29T13:43:53.453 に答える