我对PyQt还是个新手,但我真的不知道为什么会这样.
我有一个我这样创建的主窗口:
class MainWindow(QtGui.QMainWindow):
#initialize
def __init__(self):
#Call parent constructor
super(MainWindow, self).__init__()
#Load the interface
self.ui = uic.loadUi(r"Form Files/rsleditor.ui")
#Show the ui
self.ui.show()
Run Code Online (Sandbox Code Playgroud)
当我想用以下方法覆盖close事件时:
def closeEvent(self, event):
quit_msg = "Are you sure you want to exit the program?"
reply = QtGui.QMessageBox.question(self, 'Message',
quit_msg, QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
if reply == QtGui.QMessageBox.Yes:
self.saveSettings()
event.accept()
else:
event.ignore()
Run Code Online (Sandbox Code Playgroud)
我读过我必须把uic.loadUI电话换成:
self.ui = uic.loadUi(r"Form Files/rsleditor.ui", self)
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我的所有行为都开始被掀起三次.我很确定我在添加它之前正确设置信号和插槽.有帮助吗?
pyuic文件:
RSLEditorClass.setIconSize(QtCore.QSize(24, 24))
self.centralWidget = QtGui.QWidget(RSLEditorClass)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.centralWidget.sizePolicy().hasHeightForWidth())
self.centralWidget.setSizePolicy(sizePolicy)
self.centralWidget.setObjectName(_fromUtf8("centralWidget"))
self.vLayMain = QtGui.QVBoxLayout(self.centralWidget) …Run Code Online (Sandbox Code Playgroud)