首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AttributeError: builtin_function_or_method对象没有属性“addLayout”

AttributeError: builtin_function_or_method对象没有属性“addLayout”
EN

Stack Overflow用户
提问于 2018-12-05 12:29:41
回答 1查看 1.9K关注 0票数 0

UIWidget类在PyQT5 and Python3中如下所示。

代码语言:javascript
运行
复制
class UIWidget(QtWidgets.QWidget):    
    def __init__(self, parent=None):
        super(UIWidget, self).__init__(parent)        
        # Initialize tab screen
        self.tabs = QtWidgets.QTabWidget()
        self.tab1 = QtWidgets.QWidget()        

        # Add tabs
        self.tabs.addTab(self.tab1, "Face")

        self.display = PlayStreaming()
        # Create first tab
        self.createGridLayout()
        self.tab1.layout = QtWidgets.QVBoxLayout()
        self.tab1.layout.addWidget(self.display, stretch=1)
        self.tab1.layout.addWidget(self.horizontalGroupBox)
        self.tab1.setLayout(self.tab1.layout)

        # Add tabs to widget
        self.layout = QtWidgets.QVBoxLayout(self)
        self.layout.addWidget(self.tabs)

    def createGridLayout(self):
        hlay1 = QtWidgets.QVBoxLayout()   
        self.horizontalGroupBox = QtWidgets.QGroupBox("")
        self.horizontalGroupBox.setStyleSheet("QGroupBox{ background-color: red; border: none;}")          
        self.ScaleUpButton=QtWidgets.QPushButton('ScaleUp')
        self.ScaleUpButton.clicked.connect(self.display.scaleupSignal)
        hlay1.addWidget(self.ScaleUpButton) 
        self.ScaleDownButton=QtWidgets.QPushButton('ScaleDown')
        self.ScaleDownButton.clicked.connect(self.display.scaledownSignal)
        hlay1.addWidget(self.ScaleDownButton) 
        self.resetButton=QtWidgets.QPushButton('Reset')
        hlay1.addWidget(self.resetButton)
        self.resetButton.clicked.connect(self.display.resetallarraysSignal)
        self.RecognizeButton=QtWidgets.QPushButton('Recognize')
        self.RecognizeButton.clicked.connect(self.display.send_signal)
        hlay1.addWidget(self.RecognizeButton)             
        self.layout.addLayout(hlay1)
        self.horizontalGroupBox.setLayout(self.layout)

试图分配Vertical layout to Horizontal layout

这行self.layout.addLayout(hlay1)有错误,如

代码语言:javascript
运行
复制
AttributeError: 'builtin_function_or_method' object has no attribute 'addLayout'

我如何解决这个错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-05 12:38:53

您正在尝试在self.layout中的self.layout = QtWidgets.QVBoxLayout(self)行运行之前访问self.layout = QtWidgets.QVBoxLayout(self)。因此,self.layout就是 base class

首先,您可能希望使用完全不同的名称来避免与QtWidgets.QWidget上的方法发生冲突。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53632379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档