如何将父级传递给 QMessage 子类
How to pass a parent to a QMessage subclass
如何正确地将父类传递给 QMessgaeBox
子类?如果我不使用父级,则消息框不会出现在 window!
的中心
class onCloseMessage(QMessageBox):
def __init__(self):
QMessageBox.__init__(self, QMessageBox.Question, "title", "message",
buttons= QMessageBox.Close)
dlg = onCloseMessage()
dlg.exec()
当我传递一个父对象,并用父对象替换 __init__
中的 self
时,它会出错。如果我使用 super
,那么我如何才能 __init__
QMessageBox?
我试过了:
class onCloseMessage(QMessageBox):
def __init__(self, parent):
super().__init__(parent)
QMessageBox.__init__(self, QMessageBox.Question, "title", "message",
buttons= QMessageBox.Close)
但是,也没用。
使用 super
时,您不应同时调用 base-class __init__
。相反,将所有必需的参数传递给 super
本身,如下所示:
class onCloseMessage(QMessageBox):
def __init__(self, parent):
super().__init__(QMessageBox.Question, "title", "message",
buttons=QMessageBox.Close, parent=parent)
(注意:您可以在 Qt signature 显示默认参数的任何地方使用 Python 关键字参数。
如何正确地将父类传递给 QMessgaeBox
子类?如果我不使用父级,则消息框不会出现在 window!
class onCloseMessage(QMessageBox):
def __init__(self):
QMessageBox.__init__(self, QMessageBox.Question, "title", "message",
buttons= QMessageBox.Close)
dlg = onCloseMessage()
dlg.exec()
当我传递一个父对象,并用父对象替换 __init__
中的 self
时,它会出错。如果我使用 super
,那么我如何才能 __init__
QMessageBox?
我试过了:
class onCloseMessage(QMessageBox):
def __init__(self, parent):
super().__init__(parent)
QMessageBox.__init__(self, QMessageBox.Question, "title", "message",
buttons= QMessageBox.Close)
但是,也没用。
使用 super
时,您不应同时调用 base-class __init__
。相反,将所有必需的参数传递给 super
本身,如下所示:
class onCloseMessage(QMessageBox):
def __init__(self, parent):
super().__init__(QMessageBox.Question, "title", "message",
buttons=QMessageBox.Close, parent=parent)
(注意:您可以在 Qt signature 显示默认参数的任何地方使用 Python 关键字参数。