我有两个QDialog
类,DialogA和DialogB。 DialogA使用自定义调色板。它包含一个DialogB实例,并在用户按下按钮时打开它。将调色板从DialogA传播到DialogB的正确方法是什么?我正在做以下事情:
class DialogA(QDialog):
def __init__(self,parent=None):
super(DialogA, self).__init__(parent)
# Palette setup in this class
...
DialogB = DialogB(self)
class DialogB(QDialog):
def __init__(self,parent=None):
super(DialogB, self).__init__(parent)
if parent != None:
self.setPalette(parent.pallete())
有没有比检查if parent != None
更好的方法?我很挑剔,不想让if语句执行这个逻辑。如果我自己拨打DialogB parent == None
,那么我就无法拨打parent.pallete()
。
答案 0 :(得分:1)
为什么不将参数添加到DialogB
的构造函数?
class DialogA(QDialog):
def __init__(self,parent=None):
super(DialogA, self).__init__(parent)
# Palette setup in this class
...
DialogB = DialogB(self, palette)
class DialogB(QDialog):
def __init__(self, palette, parent=None):
super(DialogB, self).__init__(parent)
self.setPalette(palette)