设置Phonon :: VideoPlayer的源代码

时间:2011-10-04 04:19:18

标签: python user-interface pyqt

以下是my .ui file的链接。以下是启动GUI的代码:

import sys
from PyQt4 import QtCore, QtGui
from gui import Ui_Form

class StartQT4(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_Form()
        self.ui.setupUi(self)


if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    myapp = StartQT4()
    myapp.show()
    sys.exit(app.exec_())

PY 这是GUI类代码(.py):

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'FinalGUI.ui'
#
# Created: Mon Oct  3 21:53:33 2011
#      by: PyQt4 UI code generator 4.8.5
#
# WARNING! All changes made in this file will be lost!

from PyQt4 import QtCore, QtGui

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    _fromUtf8 = lambda s: s

class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName(_fromUtf8("Form"))
        Form.resize(599, 557)
        Form.setWindowTitle(QtGui.QApplication.translate("Form", "Form", None, QtGui.QApplication.UnicodeUTF8))
        self.tabWidget = QtGui.QTabWidget(Form)
        self.tabWidget.setGeometry(QtCore.QRect(0, 0, 601, 561))
        self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
        self.intro = QtGui.QWidget()
        self.intro.setObjectName(_fromUtf8("intro"))
        self.frame = QtGui.QFrame(self.intro)
        self.frame.setGeometry(QtCore.QRect(10, 10, 561, 511))
        self.frame.setFrameShape(QtGui.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtGui.QFrame.Raised)
        self.frame.setObjectName(_fromUtf8("frame"))
        self.textBrowser = QtGui.QTextBrowser(self.frame)
        self.textBrowser.setGeometry(QtCore.QRect(10, 10, 541, 361))
        self.textBrowser.setHtml(QtGui.QApplication.translate("Form", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:8pt; font-weight:600; text-decoration: underline;\">Revolution of Music</span></p>\n"
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt; font-weight:600; text-decoration: underline; vertical-align:sub;\">By Casey and Caleb</span></p>\n"
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:10pt; vertical-align:sub;\">Coded with Python</span></p>\n"
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:14pt; font-weight:600; vertical-align:sub;\">[INSERT INTRODUCTION PARAGRAH]</span></p>\n"
"<p align=\"center\" style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt; vertical-align:sub;\"></p>\n"
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/musicPic/Current-Music.jpg\" /></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
        self.textBrowser.setObjectName(_fromUtf8("textBrowser"))
        self.checkBox = QtGui.QCheckBox(self.frame)
        self.checkBox.setGeometry(QtCore.QRect(190, 430, 81, 17))
        self.checkBox.setText(QtGui.QApplication.translate("Form", "Project Idea", None, QtGui.QApplication.UnicodeUTF8))
        self.checkBox.setObjectName(_fromUtf8("checkBox"))
        self.checkBox_2 = QtGui.QCheckBox(self.frame)
        self.checkBox_2.setGeometry(QtCore.QRect(190, 450, 81, 17))
        self.checkBox_2.setText(QtGui.QApplication.translate("Form", "Research", None, QtGui.QApplication.UnicodeUTF8))
        self.checkBox_2.setObjectName(_fromUtf8("checkBox_2"))
        self.checkBox_3 = QtGui.QCheckBox(self.frame)
        self.checkBox_3.setGeometry(QtCore.QRect(190, 470, 70, 17))
        self.checkBox_3.setText(QtGui.QApplication.translate("Form", "Written", None, QtGui.QApplication.UnicodeUTF8))
        self.checkBox_3.setObjectName(_fromUtf8("checkBox_3"))
        self.checkBox_4 = QtGui.QCheckBox(self.frame)
        self.checkBox_4.setGeometry(QtCore.QRect(190, 490, 70, 17))
        self.checkBox_4.setText(QtGui.QApplication.translate("Form", "Done!", None, QtGui.QApplication.UnicodeUTF8))
        self.checkBox_4.setObjectName(_fromUtf8("checkBox_4"))
        self.textBrowser_2 = QtGui.QTextBrowser(self.frame)
        self.textBrowser_2.setGeometry(QtCore.QRect(180, 390, 191, 31))
        self.textBrowser_2.setHtml(QtGui.QApplication.translate("Form", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:8pt; font-weight:600;\">Project Goals</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
        self.textBrowser_2.setObjectName(_fromUtf8("textBrowser_2"))
        self.line = QtGui.QFrame(self.frame)
        self.line.setGeometry(QtCore.QRect(280, 440, 3, 61))
        self.line.setFrameShape(QtGui.QFrame.VLine)
        self.line.setFrameShadow(QtGui.QFrame.Sunken)
        self.line.setObjectName(_fromUtf8("line"))
        self.checkBox_5 = QtGui.QCheckBox(self.frame)
        self.checkBox_5.setGeometry(QtCore.QRect(290, 430, 81, 17))
        self.checkBox_5.setText(QtGui.QApplication.translate("Form", "Learn PyQt", None, QtGui.QApplication.UnicodeUTF8))
        self.checkBox_5.setObjectName(_fromUtf8("checkBox_5"))
        self.checkBox_6 = QtGui.QCheckBox(self.frame)
        self.checkBox_6.setGeometry(QtCore.QRect(290, 450, 91, 17))
        self.checkBox_6.setText(QtGui.QApplication.translate("Form", "Code Program", None, QtGui.QApplication.UnicodeUTF8))
        self.checkBox_6.setObjectName(_fromUtf8("checkBox_6"))
        self.checkBox_7 = QtGui.QCheckBox(self.frame)
        self.checkBox_7.setGeometry(QtCore.QRect(290, 470, 70, 17))
        self.checkBox_7.setText(QtGui.QApplication.translate("Form", "Compile", None, QtGui.QApplication.UnicodeUTF8))
        self.checkBox_7.setObjectName(_fromUtf8("checkBox_7"))
        self.checkBox_8 = QtGui.QCheckBox(self.frame)
        self.checkBox_8.setGeometry(QtCore.QRect(290, 490, 70, 17))
        self.checkBox_8.setText(QtGui.QApplication.translate("Form", "Finished", None, QtGui.QApplication.UnicodeUTF8))
        self.checkBox_8.setObjectName(_fromUtf8("checkBox_8"))
        self.tabWidget.addTab(self.intro, _fromUtf8(""))
        self.vidTest = QtGui.QWidget()
        self.vidTest.setObjectName(_fromUtf8("vidTest"))
        self.videoPlayer = phonon.Phonon.VideoPlayer(self.vidTest)
        self.videoPlayer.setGeometry(QtCore.QRect(10, 10, 571, 431))
        self.videoPlayer.setObjectName(_fromUtf8("videoPlayer"))
        self.seekSlider = phonon.Phonon.SeekSlider(self.vidTest)
        self.seekSlider.setGeometry(QtCore.QRect(10, 450, 84, 21))
        self.seekSlider.setObjectName(_fromUtf8("seekSlider"))
        self.volumeSlider = phonon.Phonon.VolumeSlider(self.vidTest)
        self.volumeSlider.setGeometry(QtCore.QRect(470, 450, 109, 22))
        self.volumeSlider.setObjectName(_fromUtf8("volumeSlider"))
        self.pushButton_2 = QtGui.QPushButton(self.vidTest)
        self.pushButton_2.setGeometry(QtCore.QRect(260, 450, 75, 23))
        self.pushButton_2.setText(QtGui.QApplication.translate("Form", "Pause", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
        self.pushButton_3 = QtGui.QPushButton(self.vidTest)
        self.pushButton_3.setGeometry(QtCore.QRect(390, 450, 75, 23))
        self.pushButton_3.setText(QtGui.QApplication.translate("Form", "Stop", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton_3.setObjectName(_fromUtf8("pushButton_3"))
        self.radioButton = QtGui.QRadioButton(self.vidTest)
        self.radioButton.setGeometry(QtCore.QRect(130, 450, 82, 17))
        self.radioButton.setText(QtGui.QApplication.translate("Form", "Play", None, QtGui.QApplication.UnicodeUTF8))
        self.radioButton.setObjectName(_fromUtf8("radioButton"))
        self.tabWidget.addTab(self.vidTest, _fromUtf8(""))
        self.billHaley = QtGui.QWidget()
        self.billHaley.setObjectName(_fromUtf8("billHaley"))
        self.textBrowser_3 = QtGui.QTextBrowser(self.billHaley)
        self.textBrowser_3.setGeometry(QtCore.QRect(10, 30, 381, 491))
        self.textBrowser_3.setHtml(QtGui.QApplication.translate("Form", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;\"></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
        self.textBrowser_3.setObjectName(_fromUtf8("textBrowser_3"))
        self.frame_2 = QtGui.QFrame(self.billHaley)
        self.frame_2.setGeometry(QtCore.QRect(400, 30, 191, 491))
        self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel)
        self.frame_2.setFrameShadow(QtGui.QFrame.Raised)
        self.frame_2.setObjectName(_fromUtf8("frame_2"))
        self.graphicsView = QtGui.QGraphicsView(self.frame_2)
        self.graphicsView.setGeometry(QtCore.QRect(10, 60, 171, 341))
        self.graphicsView.setObjectName(_fromUtf8("graphicsView"))
        self.pushButton_4 = QtGui.QPushButton(self.frame_2)
        self.pushButton_4.setGeometry(QtCore.QRect(60, 410, 75, 23))
        self.pushButton_4.setText(QtGui.QApplication.translate("Form", "Source", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton_4.setObjectName(_fromUtf8("pushButton_4"))
        self.tabWidget.addTab(self.billHaley, _fromUtf8(""))
        self.tab_4 = QtGui.QWidget()
        self.tab_4.setObjectName(_fromUtf8("tab_4"))
        self.tabWidget.addTab(self.tab_4, _fromUtf8(""))

        self.retranslateUi(Form)
        self.tabWidget.setCurrentIndex(2)
        QtCore.QObject.connect(self.pushButton_2, QtCore.SIGNAL(_fromUtf8("clicked()")), self.videoPlayer.pause)
        QtCore.QObject.connect(self.pushButton_3, QtCore.SIGNAL(_fromUtf8("clicked()")), self.videoPlayer.stop)
        QtCore.QObject.connect(self.radioButton, QtCore.SIGNAL(_fromUtf8("toggled(bool)")), self.videoPlayer.play)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.intro), QtGui.QApplication.translate("Form", "Introduction", None, QtGui.QApplication.UnicodeUTF8))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.vidTest), QtGui.QApplication.translate("Form", "Video Test", None, QtGui.QApplication.UnicodeUTF8))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.billHaley), QtGui.QApplication.translate("Form", "Bill Haley", None, QtGui.QApplication.UnicodeUTF8))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), QtGui.QApplication.translate("Form", "Blank :P ", None, QtGui.QApplication.UnicodeUTF8))

from PyQt4 import phonon

我的问题是,如何让视频播放器加载the url,以便当我切换单选按钮,标记,播放以启动音乐时?
对不起,但我是新手,真的需要这样做。请解释一下,因为我需要稍后在很多其他标签上实现它。另外,PyQt4 Designer中的缩放如何? 只需要知道所以我可以为图片制作正确的尺寸。

1 个答案:

答案 0 :(得分:1)

如果没有详细介绍Phonon软件包如何工作,这里有一个快速片段:

from PyQt4.phonon import Phonon

...

source = Phonon.MediaSource("http://vsyamuzika.narod.ru/tvist/Rock_around_the_clock.mp3")
self.ui.videoPlayer.mediaObject().setCurrentSource(source)
self.ui.videoPlayer.play()

您可以创建一个MediaSource对象列表,并将它们交换到播放器中。