2

this is code with player only work fine ; with treeview only also work but together the app crash immediately if i click on radio button to show the treeview. But if i click open button and the file explorer appear than it work and i can use radiobutton without problem ; i don't know why.

import sys
from PyQt5 import QtGui, QtWidgets, QtCore, uic
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtMultimedia import *
from PyQt5.QtMultimediaWidgets import *
from PyQt5.uic import loadUi


class MyApp(QMainWindow):
    def __init__(self):
        super(MyApp, self).__init__()
        loadUi("window.ui", self)

#########################################################################

        self.model = QFileSystemModel(self)
        self.model.setRootPath(self.model.myComputer())
        self.treeview.setModel(self.model)
        self.treeview.clicked.connect(self.on_treeView_clicked)
        self.folder_open.toggled.connect(self.HideShow) # show/hide treeview

#########################################################################

        self.media = QMediaPlayer()
        video = QVideoWidget(self.videoShow)
        video.setGeometry(QtCore.QRect(0, 0, 439, 282))
        self.playButton.clicked.connect(self.playVideo)
        self.openbtn.clicked.connect(self.openFile)
        self.media.setVideoOutput(video)

#########################################################################

    @QtCore.pyqtSlot(QtCore.QModelIndex)
    def on_treeView_clicked(self, index):
        indexItem = self.model.index(index.row(), 0, index.parent())
        filePath = self.model.filePath(indexItem)
        self.choice.setText(filePath)

    def HideShow(self):
        if self.folder_open.isChecked() == True:
            self.showTree()
        if self.folder_open.isChecked() == False:
            self.hideTree()

    def showTree(self):
        self.list.setFixedSize(443, 310)
        window.setFixedSize(1200, 320)

    def hideTree(self):
        self.list.setFixedSize(0, 310)
        window.setFixedSize(750, 320)

###########################################################################

    def openFile(self):
        fileName, _ = QFileDialog.getOpenFileName(self, "Open Movie",QDir.homePath())
        if fileName != '':
            self.media.setMedia(QMediaContent(QUrl.fromLocalFile(fileName)))

    def playVideo(self):
        fileName = self.choice.text()
        self.media.setMedia(QMediaContent(QUrl.fromLocalFile(fileName)))
        self.media.play()
        #if self.media.state() == QMediaPlayer.PlayingState:
            #self.media.pause()
        #else:
            #self.media.play()

###########################################################################

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MyApp()
    window.setFixedSize(750, 320)
    window.show()
    sys.exit(app.exec_())  

window.ui used : download here

seghier
  • 167
  • 1
  • 2
  • 11

0 Answers0