La idea sería una aplicación que corra un video de imagen de fondo (background), pero intentando hacerlo me surgieron los siguientes problemas.
1- No puedo agregar un layout al player del phonon de tal forma que se auto ajuste y luego agregar otro frame encima .
ya intente usar la posicion: absolute; pero nada.
La onda sería que el video por atras haga el resize y poderle poner más objetos encima.
2- Al poner todo sin layout y ponerle un frame encima del player phonon no puedo hacer que el background del frame sea transparente o directamente no tenga fondo y aprobé usando.
Código:
Pero al usar esto desaparece la imagen del video y solo queda el sonido del mismo.self.setWindowFlags(QtCore.Qt.FramelessWindowHint) self.setAttribute(QtCore.Qt.WA_TranslucentBackground) self.setStyleSheet("background: rgba(0,255,0,20%)")
3- No entiendo en que influencia el windowOpacity en el QtDesigner lo aumento y no veo ningun cambio
Programa:
Código:
Vista:import sys from PyQt4 import QtCore, QtGui, QtSql, phonon from PyQt4.QtCore import * from PyQt4.QtGui import * from PyQt4.QtSql import * from PyQt4.phonon import Phonon from so_onsterion_vista import Ui_ventana_principal class Principal (QtGui.QMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) # self.setWindowFlags(QtCore.Qt.FramelessWindowHint) # self.setAttribute(QtCore.Qt.WA_TranslucentBackground) # self.setStyleSheet("background: rgba(0,255,0,20%)") self.ventana = Ui_ventana_principal() self.ventana.setupUi(self) # self.ventana.stackedWidget_paginas.setWindowFlags(QtCore.Qt.FramelessWindowHint) # self.ventana.stackedWidget_paginas.setAttribute(QtCore.Qt.WA_TranslucentBackground) # self.ventana.stackedWidget_paginas.setAttribute(QtCore.Qt.WA_OpaquePaintEvent) # self.ventana.stackedWidget_paginas.setStyleSheet("background-color: transparent") # self.ventana.stackedWidget_paginas.setStyleSheet("background: none") # self.ventana.stackedWidget_paginas.setStyleSheet("background: rgba(0,255,0,20%)") # self.ventana.stackedWidget_paginas.setStyleSheet("opacity: 0") self.ventana.video_reproductor.play(Phonon.MediaSource('video_test.mp4')) self.showFullScreen() if __name__ == '__main__': #Instancio la aplicacion (necesario para que levante el driver de mysql y todo) app = QtGui.QApplication(sys.argv) ventana = Principal() ventana.show() sys.exit(app.exec_())
Código:
from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s class Ui_ventana_principal(object): def setupUi(self, ventana_principal): ventana_principal.setObjectName(_fromUtf8("ventana_principal")) ventana_principal.resize(920, 727) ventana_principal.setStyleSheet(_fromUtf8("#ventana_principal{\n" " \n" "}\n" "\n" "#stackedWidget_paginas {\n" " padding: 20px;\n" " position:absolute; \n" "\n" "}\n" "\n" "#frame_background {\n" "\n" " background-color: rgb(0, 0, 0);\n" "}\n" "\n" "#label_bienvenido {\n" " font: 75 16pt \"MS Shell Dlg 2\";\n" " \n" " color: rgb(255, 255, 255);\n" "}")) self.widget_principal = QtGui.QWidget(ventana_principal) self.widget_principal.setObjectName(_fromUtf8("widget_principal")) self.frame_background = QtGui.QFrame(self.widget_principal) self.frame_background.setEnabled(False) self.frame_background.setGeometry(QtCore.QRect(9, 9, 911, 681)) self.frame_background.setStyleSheet(_fromUtf8("position:absolute;\n" "top: 500px;")) self.frame_background.setFrameShape(QtGui.QFrame.StyledPanel) self.frame_background.setFrameShadow(QtGui.QFrame.Raised) self.frame_background.setObjectName(_fromUtf8("frame_background")) self.video_reproductor = phonon.Phonon.VideoPlayer(self.frame_background) self.video_reproductor.setEnabled(False) self.video_reproductor.setGeometry(QtCore.QRect(-10, 0, 921, 711)) self.video_reproductor.setMinimumSize(QtCore.QSize(450, 250)) self.video_reproductor.setObjectName(_fromUtf8("video_reproductor")) self.stackedWidget_paginas = QtGui.QStackedWidget(self.widget_principal) self.stackedWidget_paginas.setGeometry(QtCore.QRect(170, 125, 571, 471)) self.stackedWidget_paginas.setAutoFillBackground(False) self.stackedWidget_paginas.setFrameShape(QtGui.QFrame.NoFrame) self.stackedWidget_paginas.setObjectName(_fromUtf8("stackedWidget_paginas")) self.page = QtGui.QWidget() self.page.setObjectName(_fromUtf8("page")) self.label_bienvenido = QtGui.QLabel(self.page) self.label_bienvenido.setGeometry(QtCore.QRect(10, 0, 511, 51)) self.label_bienvenido.setAlignment(QtCore.Qt.AlignCenter) self.label_bienvenido.setObjectName(_fromUtf8("label_bienvenido")) self.stackedWidget_paginas.addWidget(self.page) self.page_2 = QtGui.QWidget() self.page_2.setObjectName(_fromUtf8("page_2")) self.stackedWidget_paginas.addWidget(self.page_2) ventana_principal.setCentralWidget(self.widget_principal) self.menubar = QtGui.QMenuBar(ventana_principal) self.menubar.setGeometry(QtCore.QRect(0, 0, 920, 21)) self.menubar.setObjectName(_fromUtf8("menubar")) ventana_principal.setMenuBar(self.menubar) self.statusbar = QtGui.QStatusBar(ventana_principal) self.statusbar.setObjectName(_fromUtf8("statusbar")) ventana_principal.setStatusBar(self.statusbar) self.retranslateUi(ventana_principal) self.stackedWidget_paginas.setCurrentIndex(0) QtCore.QMetaObject.connectSlotsByName(ventana_principal) def retranslateUi(self, ventana_principal): ventana_principal.setWindowTitle(QtGui.QApplication.translate("ventana_principal", "MainWindow", None, QtGui.QApplication.UnicodeUTF8)) self.label_bienvenido.setText(QtGui.QApplication.translate("ventana_principal", "Bienvenido a Onsterion System", None, QtGui.QApplication.UnicodeUTF8)) from PyQt4 import phonon