Ich habe Code ausgeschnitten, um mein Problem besser zu verstehen. Die Frage ist, ob es einen Weg gibt, etwas wie öffentliche Methode zu erstellen und wie oder ob ich das OOP-Konzept total missverstanden habe.Python öffentliche Methoden in Klassen?
Ich habe eine große Klasse PlayerWindow
, die nur Video spielt. Dann gibt es Klasse ControlsWindow
, die nur für meine Entwicklungs-, Test- und Wartungszwecke dient (gestartet, wenn der Vollbildmodus ausgeschaltet ist). Deshalb möchte ich es besonders sein. Kann nicht herausfinden, wie man Methode play()
von der ControlsWindow
Klasse als auch von innen aufrufen, denn wenn ich ControlsWindow
mit Instanz von PlayerWindow
initialisiere, dann bekomme ich Endlosschleife.
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()
Ja, das ist genau das, was ich für mich aussehen! Danke vielmals! –