pyqt5 でサブウィンドウだけを閉じるボタンを作りたい
python3.5を使っています。pyqt5を用いてサブウィンドウにサブウィンドウだけを閉じるボタンを作りたいです。下のようなコードを書いてみましたが、サブウィンドウの「OK」というボタンを押したらメインウィンドウも一緒に閉じてしまいます。
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class MainWindow(QWidget):
def __init__(self):
super().__init__()
makeWindowButton = QPushButton("make window",self)
makeWindowButton.move(150,50)
makeWindowButton.clicked.connect(self.makeWindow)
"""
self.label = QLabel(self)
self.label.move(150,25)
self.label.setText("default:")
"""
self.setWindowTitle('ボタンで画像表示')
self.setGeometry(300, 300, 400, 100)
def makeWindow(self):
subWindow = SubWindow(self)
subWindow.show()
"""
# サブウィンドウから実行
def setParam(self, param):
self.label.setText(param)
"""
class SubWindow:
def __init__(self, parent=None):
self.w = QDialog(parent)
self.parent = parent
"""
label = QLabel()
label.setText('Sub Window')
self.edit = QLineEdit()
button = QPushButton('送信')
button.clicked.connect(self.setParamOriginal)
"""
label=QLabel()
label.setPixmap(QPixmap('gazo.jpg'))
button=QPushButton('OK')
button.clicked.connect(QCoreApplication.instance().quit)
layout = QVBoxLayout()
layout.addWidget(label)
layout.addWidget(button)
self.w.setLayout(layout)
def show(self):
self.w.exec_()
if __name__ == '__main__':
app = QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())