Bueno, estoy escribiendo una pequeña aplicación PyQt4, es solo un diálogo Sí/No que tiene que ejecutar un comando externo (por ejemplo, 'expulsar/dev/sr0') y salir.Diálogo PyQt - ¿Cómo hacer que se cierre después de presionar un botón?
La aplicación se ejecuta, ejecuta el comando después de presionar el botón "Sí", pero no puedo hacer que el diálogo salga al ejecutar el comando.
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import os
import subprocess
from PyQt4 import QtGui
from PyQt4 import QtCore
from subprocess import call
cmd = 'eject /dev/sr0'
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
btn = QtGui.QPushButton('Yes', self)
btn.clicked.connect(lambda: os.system(cmd))
btn.resize(180, 40)
btn.move(20, 35)
qbtn = QtGui.QPushButton('No', self)
qbtn.clicked.connect(QtCore.QCoreApplication.instance().quit)
qbtn.resize(180, 40)
qbtn.move(20, 80)
self.setWindowTitle('Test')
self.show()
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
Aquí está mi código. Cuando hago clic en "Sí", se llama al comando 'expulsar/dev/sr0' correctamente, pero después de eso, el cuadro de diálogo sigue siendo visible. Tengo que hacer clic en "No" para cerrar la aplicación. Me gustaría que se cierre automáticamente cuando se ejecuta el comando. ¿Qué debería agregar/modificar?
Y esta línea simple fue la solución. Gracias. –