嗯,我正在寫一個小型的PyQt4應用程序,它只是一個Yes/No對話框,它必須執行一個外部命令(例如'eject/dev/sr0')並退出。PyQt對話框 - 按下按鈕後如何退出?
該應用程序運行後,按下「是」按鈕後執行該命令,但執行該命令時無法讓對話本身退出。
#!/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()
這是我的代碼。當我點擊「是」時,它會正確調用'eject/dev/sr0'命令,但之後對話框仍然可見。我不得不點擊「否」關閉應用程序,我希望它在執行命令時自動關閉。我應該添加/修改什麼?
而這條簡單的線是解決方案。謝謝。 – 2012-08-02 08:18:13