Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/04/2012, 11:19
Onsterion
 
Fecha de Ingreso: octubre-2010
Mensajes: 73
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta Python3 + PyQT 4 Posicionamiento, layouts y phonon

Buenas queria hacer unas preguntas sobre algo que se me ocurrio y no se si es posible hacerlo.

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:
        self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
        self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
        self.setStyleSheet("background: rgba(0,255,0,20%)")
Pero al usar esto desaparece la imagen del video y solo queda el sonido del mismo.

3- No entiendo en que influencia el windowOpacity en el QtDesigner lo aumento y no veo ningun cambio


Programa:

Código:
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_())
Vista:

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
__________________
Página Principal: http://www.almightysystem.com.ar/