Я вырезал код для лучшего понимания моей проблемы. Вопрос в том, есть ли какой-то способ создания чего-то вроде общественного метода и того, как я или полностью ли понял концепцию ООП.Публичные методы Python внутри классов?
У меня есть класс PlayerWindow
, который воспроизводит только видео. Тогда есть класс ControlsWindow
, который работает только для моих целей разработки, тестирования и обслуживания (запускается при выключенном полноэкранном режиме). Поэтому я хочу быть именно этим. Не могу понять, как вызвать метод play()
из класса ControlsWindow
, а также изнутри, потому что когда я инициализирую ControlsWindow
с экземпляром PlayerWindow
, тогда я получаю бесконечный цикл.
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()
Да, это именно то, что я искал! Большое спасибо! –