0
我通過子類QWidget
編寫了一些定製的窗口小部件類。我使用它們創建了一些定製小部件,並將它們添加到QToolBox。如何從QToolBox獲取子類QWidgets?
class BaseWidget(QtGui.QWidget):
def __init__(self, parent=None):
# initialize
def mymethod():
pass
class AWidget(BaseWidget):
def __init__(self, parent=None):
# initialize
def mymethod():
print "A"
class BWidget(BaseWidget):
def __init__(self, parent=None):
# initialize
def mymethod():
print "B"
現在我想遍歷所有加入QToolBox並調用這些定製的微件的方法的部件:
class toolboxWidget(QtGui.QToolBox):
def __init__(self, parent=None):
super(toolboxWidget, self).__init__(parent=parent)
a = AWidget(self)
b = BWidget(self)
self.addItem(a, "A")
self.addItem(b, "B")
def printMethod(self):
for i in range(self.count()):
self.widget(i).mymethod()
然而,由於QToolBox
widget()
方法只返回QWidget
類型的對象,當調用printMethod()
的toolboxWidget
對象時,它給出以下錯誤:
AttributeError:'QWidget'對象沒有屬性'mymethod'。
有沒有辦法將widget()
返回的QWidget
轉換爲BaseWidget
對象?謝謝。
在發佈示例代碼,請包括_actual code_引起該問題,並_full_回溯。 – ekhumoro