私の問題をよりよく理解するためのコードを省略しました。問題は、パブリックメソッドのようなものを作成する方法と、OOPの概念を完全に誤解しているかどうか、あるいはどうやって作成するかということです。クラス内のPythonパブリックメソッド?
私にはビデオを再生するメジャークラスPlayerWindow
があります。その後、私の開発、テスト、およびメンテナンスの目的でのみ提供されるクラスControlsWindow
があります(フルスクリーンオフ時に起動されます)。それゆえ、私は特にそれになりたいです。私がControlsWindow
のインスタンスをPlayerWindow
で初期化すると、無限ループになるので、ControlsWindow
クラスからメソッドplay()
を呼び出す方法を知ることができません。
class ControlsWindow(QtGui.QWidget):
def __init__(self):
super(ControlsWindow, self).__init__()
self.playPauseButton = QtGui.QPushButton('Play', self)
self.show()
class PlayerWindow(QtGui.QWidget):
def __init__(self):
super(PlayerWindow, self).__init__()
# ...
self.mediaPlayer = self.playerInstance.media_player_new()
# ...
self.initUI()
self.play()
def initUI(self):
# ...
self.show()
self.controls_window = ControlsWindow()
def keyPressEvent(self, e):
if e.key() == QtCore.Qt.Key_Return:
self.toggleControlsWindow()
def toggleControlsWindow(self):
if self.isFullScreen():
self.showNormal()
self.controls_window = ControlsWindow()
else:
self.controls_window.close()
self.showFullScreen()
def play(self):
self.mediaPlayer.play()
def main():
app = QtGui.QApplication(sys.argv)
player_window = PlayerWindow()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
はい、これは私が探しているものです!どうもありがとう! –