我正在尝试编写一个利用 QMainWindow 并在那里有一个 QMenuBar 的应用程序,该应用程序具有 File->Exit 功能,它也使用 UIC 文件。尽管我付出了努力,但我已经将我的项目剥离到无法正常工作的部分 - closeEvent 被调用,它被接受,但窗口没有关闭。这是我的test.py:
#! /usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import print_function
import sys
from PyQt4 import QtCore, QtGui, uic
class TruEdit(QtGui.QMainWindow):
def __init__(self):
QtGui.QDialog.__init__(self)
self.ui = uic.loadUi("test.ui")
self.ui.show()
self.ui.actionWyj_cie.triggered.connect(self.wyjscie)
def wyjscie(self):
self.close()
def closeEvent(self, event):
event.accept()
print("WTF, still alive")
@QtCore.pyqtSlot()
def reject(self):
print("Never entered this")
return None
if __name__=="__main__":
app = QtGui.QApplication(sys.argv)
app.setQuitOnLastWindowClosed(True)
window = TruEdit()
sys.exit(app.exec_())
这是test.ui:
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>21</height>
</rect>
</property>
<widget class="QMenu" name="menuPlik">
<property name="title">
<string>Plik</string>
</property>
<addaction name="actionWyj_cie"/>
</widget>
<addaction name="menuPlik"/>
</widget>
<widget class="QStatusBar" name="statusbar">
<property name="statusTip">
<string/>
</property>
</widget>
<action name="actionWyj_cie">
<property name="text">
<string>Wyjście</string>
</property>
<property name="shortcut">
<string>Ctrl+K</string>
</property>
</action>
</widget>
<resources/>
<connections/>
</ui>
我做错了什么?