Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: [u]nsigned en 5 Junio 2012, 21:24 pm



Título: [Python]Problema con QPushButton (PyQt4)
Publicado por: [u]nsigned en 5 Junio 2012, 21:24 pm
Bueno estoy programando un software para hacer respaldos de drivers de Windows, en Python y usando PyQT.

Tengo el siguiente codigo:

Código
  1. # -*- coding: utf-8 -*-
  2. from PyQt4 import QtCore, QtGui
  3. import sys, csv, os
  4.  
  5. class Mi_Programa(QtGui.QWidget):
  6. def __init__ (self, parent=None):
  7. QtGui.QWidget.__init__(self, parent)
  8. self.resize(200,200)
  9. self.boton = QtGui.QPushButton("Aceptar",self)
  10. self.boton.setGeometry(10,45,180,30)
  11. self.connect(self.boton, QtCore.SIGNAL("clicked()"), self.respuesta)
  12.  
  13. self.drivers = list()
  14.  
  15. def respuesta(self):
  16. self.boton.setDisabled(True)
  17. os.system("driverquery /V /NH /FO CSV > drivers.csv")
  18. drivers = csv.reader(open('drivers.csv','rb'), delimiter=',', quotechar='"')
  19. for driver in drivers:
  20. if(len(driver)):
  21. self.drivers.append(unicode(driver[13]))
  22. print self.drivers
  23.  
  24. app = QtGui.QApplication(sys.argv)
  25. formulario = Mi_Programa()
  26. formulario.show()
  27. app.exec_()
  28.  

El progrma funciona. Lo que haces es llamar al systema y ejecutar el comando driverquery para obtener una lista de los drivers en la pc, luego los imprime en la consola (uso la consola porque estoy desarrollando).
Todo funciona bien, el problema es el boton. Cuando se le hace click lo que quiero es que el boton se ponga como desactivo,y luego genere y lea el CSV, pero el boton recien se desactiva cuando termina de generar el proceso.

Alguna idea?

Saludos