begin process at 2012 05 25 05:52:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Python

 > 

Divers

 > 

Aide et documentation

 > 

PyQt4 et vidéo


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

PyQt4 et vidéo

mercredi 30 décembre 2009 à 11:33:51 | PyQt4 et vidéo

drophi

Bonjour,
j'ai un petit problème d'affichage d'image avec PyQt. Je souhaiterais afficher une image dans un TabWidget et la modifier périodiquement. Cette partie s'inscrit dans un programme plus ample qui donne satisfaction pour le reste.
Voici le code du premier fichier camera.py généré par Qt Designer
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'camera.ui'
#
# Created: Wed Dec 30 10:51:35 2009
# by: PyQt4 UI code generator 4.4.4
#
# WARNING! All changes made in this file will be lost!

from PyQt4 import QtCore, QtGui

class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.tabWidget = QtGui.QTabWidget(self.centralwidget)
self.tabWidget.setGeometry(QtCore.QRect(20, 20, 661, 471))
self.tabWidget.setObjectName("tabWidget")
self.tab = QtGui.QWidget()
self.tab.setObjectName("tab")
self.frame = QtGui.QFrame(self.tab)
self.frame.setGeometry(QtCore.QRect(40, 40, 581, 351))
self.frame.setFrameShape(QtGui.QFrame.StyledPanel)
self.frame.setFrameShadow(QtGui.QFrame.Raised)
self.frame.setObjectName("frame")
self.tabWidget.addTab(self.tab, "")
self.tab_2 = QtGui.QWidget()
self.tab_2.setObjectName("tab_2")
self.label = QtGui.QLabel(self.tab_2)
self.label.setGeometry(QtCore.QRect(30, 40, 531, 341))
self.label.setPixmap(QtGui.QPixmap("Frank.gif"))
self.label.setObjectName("label")
self.tabWidget.addTab(self.tab_2, "")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 22))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)

self.retranslateUi(MainWindow)
self.tabWidget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(MainWindow)

def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), QtGui.QApplication.translate("MainWindow", "Tab 1", None, QtGui.QApplication.UnicodeUTF8))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), QtGui.QApplication.translate("MainWindow", "Tab 2", None, QtGui.QApplication.UnicodeUTF8))


if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
MainWindow = QtGui.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())

et enfin le code qui pose problème:
# -*- coding: cp1252 -*-
# How to use PIL images in PyQt4

import os, sys
import Image
import threading
import time
from PyQt4 import QtCore, QtGui
from camera import Ui_MainWindow
from VideoCapture import Device

class MiniViewer(QtGui.QMainWindow, Ui_MainWindow ):
"this class demonstrates how to use PIL images in PyQt [does not work yet!]"
def __init__(self, parent = None):
#démarrage des init individuels des fenêtres
QtGui.QMainWindow.__init__(self)
Ui_MainWindow.__init__(self)
self.setupUi(self)

# intefacage de la caméra
self.camok=True
try:
self.cam = Device(devnum=0)
except :
print 'pas de caméra'
self.camok=False
self.image_cam= QtGui.QImage()
thread_cam=threading.Thread(target=self.aff)
thread_cam.start()


def open(self,infile):
# load an image using PIL, first read it
#self.cam.saveSnapshot(infile, timestamp=3, boldfont=1)
self.PILimage = Image.open(infile)
self.PILimage=self.PILimage.resize((440,500))
# now update the QImage according to the PIL image
self.__PIL2Qt()

def aff(self):
# lecture de la caméra directe using PIL, first read it
encoder="jpeg"
mode="RGB"
while 1:
if self.camok: #si vraiment la caméra est en fonction
print 'on y va pour la cam'
self.PILimage=self.cam.getImage(timestamp=1)
PILstring = self.PILimage.convert(mode).tostring(encoder, mode)
self.image_cam.loadFromData(QtCore.QByteArray(PILstring))
self.image_cam.save("image_bis.jpg","JPG")
# la ligne suivante ne fonctionne pas
self.label.setPixmap(QtGui.QPixmap("image_bis.jpg"))

time.sleep(2) # inutile si on veut de la vidéo

## def paintEvent(self, Event):
## painter = QtGui.QPainter(self)
## painter.drawImage(0,0,self.image_cam)


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


C'est la ligne contenant le setPixmap qui ne fonctionne pas. J'ai cherché pendant plusieurs heures la solution sur les différents blogs... mais apparemment je ne suis pas doué car je n'ai pas trouvé le truc.
Merci de votre réponse.


Cette discussion est classée dans : image, self, tab, mainwindow, qtgui


Répondre à ce message

Sujets en rapport avec ce message

Porbleme affichage d'image avec pyqt [ par TYKO86 ] bonjour à tous, je suis débutant avec pyQt et je voudrais créer une classe qui me permet d'afficher des images mais mon soucis est je n'y arrive pas a matrice symétrique [ par delaval ] bonjour, je suis actuellement en train d'écrire une fonction symétrique qui renvoie True or False selon la matrice que je rentre. Voici mon code:class toutes les lignes+colonnes d'un QTreeWidget [ par WieWeet ] bonjour, mes recherches ( google et autres ) n'ayant rien donné, [code=py] import sys from PyQt4 import QtGui from PyQt4.QtGui import QTreeWidget clas Question sur PyQt4 !!!!!! [ par Subversion ] Bonjour à vous tous,Voilà, je dois programmer en Python via Eclipse (avec PyDev) afin d'élaborer une interface graphique. De ce fait, je suis en train [Python][Classe] intégration fonction "def" dans une classe [ par Acolyte ] Bonsoir à tous, J'ai un petit problème je veux créer un module digit qui permet d'afficher des chiffres digitaux (virtuel) comme sur les anciens radio enregistrement [ par grephit ] bonjour, Je souhaite pour mes code obtenir un enregistrement , en bmp ou jpeg .Mais avec la possibilité d'ouvrir un bmp , dessiner dessus et enregist WXPython, probleme avec un notebook [ par faucheuse ] Par défaut Probleme sizer dans un panel dans un notebook Bonjour à tous, J'ai créer un notebook dans lequel je met plusieurs panel ainsi que un ou pl taquin 4*4 probleme affichage tkinter [ par fredericfabry ] Bonjour je me suis lance dans la resolution du probleme du taquin (puzzle) de4*4 mon programme donne le resultat mais je ne suis pas content car j'ai Bug graphique [ par ples ] Bonjour, Je travail sous opensuse-11.4. Pour intégrer le module nidaqmxbase dans Python, je dois recompiler Python-2.7.2, ça ne fonctionne pas autrem Bonne syntaxe class python tkinter [ par Keyve ] Bonjour, je voudrais savoir si le syntaxe de cette librairie python et correct ou non : [code=py]from Tkinter import * class win(object): def _


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales