2013-08-27 3 views
2

this 튜토리얼을 따르려고합니다. 그러나 PyQt5를 사용하는 동안 PyQt4 용으로 만들어졌습니다. QPushButton을 열려있는 모든 프로그램 창을 닫습니다.

은 내가 QPushButton 객체가 btn라고하고 clicked() 신호가 QApplication closeAllWindows() 슬롯을 트리거 할 수 있습니다. 설명서를 읽었지만 도움이되지 않습니다. 파이썬을 처음 접했습니다.

아무에게도이를 수행하는 방법을 알고 있습니까?

답변

0

체크 아웃이 예 :

#!/usr/bin/env python 
#-*- coding:utf-8 -*- 

#--------- 
# IMPORT 
#--------- 
import sys 

from PyQt4 import QtGui, QtCore 

#--------- 
# DEFINE 
#--------- 
class MyWindow(QtGui.QWidget): 
    def __init__(self, parent=None): 
     super(MyWindow, self).__init__(parent) 

     self.pushButtonClose = QtGui.QPushButton(self) 
     self.pushButtonClose.setText("Close Windows!") 
     self.pushButtonClose.clicked.connect(self.on_pushButtonClose_clicked) 

     self.pushButtonWindows = QtGui.QPushButton(self) 
     self.pushButtonWindows.setText("Create Windows!") 
     self.pushButtonWindows.clicked.connect(self.on_pushButtonWindows_clicked) 

     self.layoutVertical = QtGui.QVBoxLayout(self) 
     self.layoutVertical.addWidget(self.pushButtonClose) 
     self.layoutVertical.addWidget(self.pushButtonWindows) 

    @QtCore.pyqtSlot() 
    def on_pushButtonWindows_clicked(self): 
     position = self.rect().bottom() 

     for dialogNumber in range(3): 
      dialog = QtGui.QDialog(self) 
      dialog.show() 
      dialog.setGeometry(
       position, 
       position, 
       dialog.width(), 
       dialog.height() 
      ) 

      position += 10 

    @QtCore.pyqtSlot() 
    def on_pushButtonClose_clicked(self): 
     app = QtGui.QApplication.instance() 
     app.closeAllWindows() 

#--------- 
# MAIN 
#--------- 
if __name__ == "__main__":  
    app = QtGui.QApplication(sys.argv) 
    app.setApplicationName('MyWindow') 

    main = MyWindow() 
    main.setGeometry(0, 0, 333, 111) 
    main.setWindowFlags(
     main.windowFlags() | 
     QtCore.Qt.WindowStaysOnTopHint | 
     QtCore.Qt.X11BypassWindowManagerHint 
    ) 
    main.show() 

    sys.exit(app.exec_()) 
관련 문제