Foros del Web » Programando para Internet » Python »

pyqt, de función a Qslider

Estas en el tema de pyqt, de función a Qslider en el foro de Python en Foros del Web. Estoy intentando hacer un mezclador de volumen en pyqt, tengo esto: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Python: Ver original from PyQt4. QtGui import * from PyQt4. QtCore ...
  #1 (permalink)  
Antiguo 12/01/2012, 08:49
 
Fecha de Ingreso: febrero-2011
Mensajes: 54
Antigüedad: 13 años, 1 mes
Puntos: 18
pyqt, de función a Qslider

Estoy intentando hacer un mezclador de volumen en pyqt, tengo esto:
Código Python:
Ver original
  1. from PyQt4.QtGui import *
  2. from PyQt4.QtCore import *
  3. import sys
  4. import subprocess
  5.  
  6. GETVOL = """amixer get PCM | grep "Front Left:" |  cut -d ' ' -f6"""
  7.  
  8. def getVol(vol):
  9.     vol = subprocess.call(GETVOL, shell=True)
  10.     return vol
  11.  
  12. if __name__=="__main__":
  13.     app=QApplication(sys.argv)
  14.     slider=QSlider(Qt.Horizontal)
  15.     QObject.connect(slider,SIGNAL("valueChanged(int)"),getVol) #esto es al revés, imprime el valor al mover el slider
  16.  
  17.     slider.show()
  18.     sys.exit(app.exec_())
La questión es que no consigo pasar el valor de getVol al slider, o sea que el volumen del sistema quede reflejado en la posición el slider. He probado todas las formas que se me han ocurrido.
Agradezco si me pueden ayudar.

Gracias
  #2 (permalink)  
Antiguo 12/01/2012, 12:06
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: pyqt, de función a Qslider

Te recomendaría usar subprocess.popen.

Creo que mas o menos buscas algo así
Código Python:
Ver original
  1. from PyQt4.QtGui import *
  2. from PyQt4.QtCore import *
  3. import sys
  4. import subprocess
  5.  
  6. GETVOL = """amixer get PCM | grep "Front Left:" |  cut -d ' ' -f6"""
  7.  
  8. def getVol():
  9.     return int(subprocess.Popen(GETVOL, shell=True, stdout=subprocess.PIPE).communicate()[0])
  10.  
  11. if __name__=="__main__":
  12.     app=QApplication(sys.argv)
  13.     slider=QSlider(Qt.Horizontal)
  14.     slider.setValue(getVol())
  15.     slider.show()
  16.     sys.exit(app.exec_())
  #3 (permalink)  
Antiguo 12/01/2012, 12:24
 
Fecha de Ingreso: febrero-2011
Mensajes: 54
Antigüedad: 13 años, 1 mes
Puntos: 18
Respuesta: pyqt, de función a Qslider

Es eso exactamente, te lo agradezco mucho Razpeitia.
Llevaba un buen tiempo buscando

Etiquetas: pyqt, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:55.