Javascript 未定义PyQt-QObject

Javascript 未定义PyQt-QObject,javascript,python,css,pyqt,pyqt4,Javascript,Python,Css,Pyqt,Pyqt4,我正在使用HTML/CSS/Javascript和Python(使用PyQt4)进行创建。我正在尝试使用声子制作视频播放器,但我没有任何使用PyQt4的经验。这是我的代码: #!/usr/bin/env python import sys from PyQt4 import QtCore, QtGui, uic, phonon class videoPlayer(QtGui.QMainWindow): def __init__(self, parent=None): Q

我正在使用HTML/CSS/Javascript和Python(使用PyQt4)进行创建。我正在尝试使用声子制作视频播放器,但我没有任何使用PyQt4的经验。这是我的代码:

#!/usr/bin/env python
import sys
from PyQt4 import QtCore, QtGui, uic, phonon

class videoPlayer(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent)
        ui = uic.loadUi("video.ui")
        media = phonon.Phonon.MediaObject()
        playQuery = False
        ui..ppButton.clicked.connect(self.playPause)

    def playVideo():            
        media.play()    

    def pauseVideo():    
        media.pause()

    def playPause():
        if playQuery:
            pauseVideo()
        else:
            playVideo()

    def changeVideoSource(target):
        media.setCurrentSource(phonon.Phonon.MediaSource(target))

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    videoPlayer = videoPlayer()
    videoPlayer.show()
    app.exec_()
我很迷茫,如果有人能告诉我我做错了什么,我将不胜感激

编辑:将
Ui
改为
Ui
。更改了,但我仍然收到一个我不理解的错误,因为
video.ui
有一个名为
ppButton
的按钮


编辑2:获得要显示的窗口,但该窗口为空。它应该包含视频播放器和按钮。

首先,您必须为
视频生成python代码。ui
为此使用
pyuic4
工具

pyuic4-x video.ui-o video.py

上面这一行将生成一个名为
video.py
的模块,该模块将包含一个名为您命名的UI的类_

然后,您可以像这样修改代码:

import sys
from PyQt4 import QtCore, QtGui, uic, phonon
from video import UI_MyVideoWindow     # Lets call it MyVideoWindow for the example.

class videoPlayer(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent)

        self.ui = UI_MyVideoWindow()
        self.ui.setUp(self)       # Now you can access you widgets from self.ui
                                  # Example: self.ui.ppButton

        media = phonon.Phonon.MediaObject(self)   # this object needs a parent.
        playQuery = False


    def playVideo():            
        media.play()    

    def pauseVideo():    
        media.pause()


    def on_ppButton_clicked():
        """
        When you generate code using QtDesigner, connections are made automagically ;)
        Just write your slots following the below format:

        on_<widget_name>_<signal_name>
        """

        if playQuery:
            pauseVideo()
        else:
            playVideo()

    def changeVideoSource(target):
        media.setCurrentSource(phonon.Phonon.MediaSource(target))

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    videoPlayer = videoPlayer()
    videoPlayer.show()
    app.exec_()
导入系统 从PyQt4导入QtCore、QtGui、uic、声子 从视频导入UI_MyVideoWindow#让我们将其称为MyVideoWindow作为示例。 类视频播放器(QtGui.QMainWindow): def uuu init uuu(self,parent=None): QtGui.QMainWindow.\uuuuu init\uuuuu(self,parent) self.ui=ui\u MyVideoWindow() self.ui.setUp(self)#现在您可以从self.ui访问小部件 #示例:self.ui.ppButton 媒体=声子。声子。媒体对象(自身)#此对象需要父对象。 playQuery=False def playVideo(): 媒体播放() def pauseVideo(): 媒体暂停() 已单击按钮上的def() """ 使用QtDesigner生成代码时,会自动建立连接;) 只需按照以下格式编写插槽: 在__ """ 如果播放查询: pauseVideo() 其他: 播放视频() def更改视频源(目标): 媒体。设置电流源(声子。声子。媒体源(目标)) 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': app=QtGui.QApplication(sys.argv) 视频播放器 视频播放器 app.exec() 这种方法的唯一问题是每次修改
video.ui
时都必须更新
video.py
模块。但这是一项非常简单的工作,只需使用以下工具再次生成:

pyuic4-x video.ui-o video.py


正如您之前所看到的。

设置是否与您的代码示例相关?啊,哦,谢谢。您似乎已经使用
QtDesigner
完成了一些GUI,但是您没有正确加载它。已经用
QtDesigner
构建了
video.ui
。@RaydelMiranda是的,我是用QtDesigner制作的。如何正确加载?