Beh, sto scrivendo una piccola app PyQt4, è solo una singola finestra di dialogo Sì/No che deve eseguire un comando esterno (ad es. 'Eject/dev/sr0') e uscire.Dialogo PyQt - Come farlo uscire dopo aver premuto un pulsante?
L'app viene eseguita, esegue il comando dopo aver premuto il pulsante "Sì", ma non riesco a chiudere la finestra di dialogo quando si esegue il 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()
Ecco il mio codice. Quando clicco su "Sì", richiama correttamente il comando 'eject/dev/sr0', ma dopo questo la finestra di dialogo è ancora visibile. Devo fare clic su "No" per chiudere l'applicazione. Vorrei che si chiudesse automaticamente quando viene eseguito il comando. Cosa dovrei aggiungere/modificare?
E questa semplice linea era la soluzione. Grazie. –