我正在尝试将QMessageBox添加到QMdiArea。当前它可以按预期工作,除了包含QMdiArea的主窗口外,一旦弹出QMessageBox,X按钮将被禁用。同样,QMessageBox上的X按钮不起作用,但是最小化按钮起作用。
我该怎么做呢?
msgbox = QMessageBox()
msgbox.setWindowModality(QtCore.Qt.NonModal)
msgbox.setWindowTitle('Results')
msgbox.setText('Test')
okaybutton = msgbox.addButton('Close', QtWidgets.QMessageBox.YesRole)
okaybutton.clicked.disconnect()
okaybutton.clicked.connect(self.closesubwindow)
graphbutton = msgbox.addButton('View Graphs', QtWidgets.QMessageBox.YesRole)
graphbutton.clicked.disconnect()
graphbutton.clicked.connect(self.viewgraph_calculate)
self.subwindow = QtWidgets.QMdiSubWindow()
self.subwindow.setWidget(msgbox)
self.subwindow.setAttribute(QtCore.Qt.WA_DeleteOnClose, True);
self.subwindow.setWindowFlags(QtCore.Qt.WindowCloseButtonHint | QtCore.Qt.WindowMinimizeButtonHint)
Data.subwindowarea[-1].addSubWindow(self.subwindow) ## used a list to access the mdiarea in multiple modules
Data.subwindow.append(self.subwindow)
self.subwindow.show()
def closesubwindow(self):
try:
newcase = 'Calculate'
Data.subwindowarea[-1].removeSubWindow(subwindow[-1])
except:
tracebackError()
def viewgraph_calculate(self):
try:
print('Graph')
except:
tracebackError()