Javascript 未定义PyQt-QObject
我正在使用HTML/CSS/Javascript和Python(使用PyQt4)进行创建。我正在尝试使用声子制作视频播放器,但我没有任何使用PyQt4的经验。这是我的代码: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
#!/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制作的。如何正确加载?