PyQt-切换窗口时关闭方法不起作用

时间:2019-03-08 11:25:43

标签: python user-interface pyqt

我现在正在与PyQt一起玩。我正在制作一个带有主控制面板以及单击时打开的其他窗口/框架的程序。问题是,在add_button.clicked.connect(control_panel.close)行中,用于关闭当前帧的.close方法与程序自己的退出函数(部分)和消息“您是否要退出应用程序”重叠。进入屏幕。我尝试使用.destroy而不是.close,但是它根本不起作用。

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import sys
from functools import partial

app = QApplication(sys.argv)
control_panel=QFrame()
control_panel.setFixedSize(300,300)

add_word_frame = QFrame()
add_word_frame.setFixedSize(300,300)

view_button = QPushButton("View the words", control_panel)
view_button.setGeometry(85,70,100,50)
#view_button.clicked.connect(word_database.show)

add_button = QPushButton("Add a word",control_panel)
add_button.setGeometry(85, 125, 100,50)
add_button.clicked.connect(control_panel.close)
add_button.clicked.connect(add_word_frame.show)

delete=QPushButton("Delete a word", control_panel)
delete.setGeometry(85,180,100,50)
#delete.clicked.connect(delete_frame.show)

delete_history = QPushButton("Clear History",control_panel)
delete_history.setEnabled(False)
delete_history.setGeometry(85, 235, 100, 50)
#delete_history.clicked.connect(clear_history)

def closeEvent(self,event):
    choice = QMessageBox.question(self, "Quit", "Do you want to quit 
    SeeWord?", QMessageBox.Yes, QMessageBox.No)
    if choice == QMessageBox.Yes:
        event.accept()
    else:
        event.ignore()

control_panel.closeEvent = partial(closeEvent, control_panel)

control_panel.show()

sys.exit(app.exec())

0 个答案:

没有答案