[PyQt5]argument 1 has unexpected type ‘QPushButton‘ 怎么解决

为了练习字体选择对话框的使用,编写了一个练习代码,如下

class FontDialogDemo(QWidget):
    def __init__(self, parent=None):
        super(FontDialogDemo, self).__init__(parent)
        self.setWindowTitle("Font Dialog 例子")

        layout = QVBoxLayout()
        self.fontButoon = QPushButton("choose font")
        self.fontButoon.clicked.connect(self.getFont)
        layout.addLayout(self.fontButoon)

        self.fontLineEdit = QLabel("hello ,this is test program.")
        layout.addWidget(self.fontLineEdit)

        self.setLayout(layout)

    def getFont(self):
        font, ok = QFontDialog.getFont()
        if ok:
            self.fontLineEdit.setFont(font)

执行后,总是提示下面的错误:

TypeError: addLayout(self, QLayout, stretch: int = 0): argument 1 has unexpected type 'QPushButton'
 

折腾了好久,才发现是添加控件的方法用错了。上述代码使用了 【addLayout】,应该使用【addWidget】。在学习之初,经常会出现遇到这样相似的方法,一不小心就用错了。经验不足,不容易检查出来。

为了弄清楚这两个方法的区别,查到的资料为:

  • addLayout:用于在 布局中 插入子 布局
  • addWidget:用于在 布局中 插入 控件

上述代码想要在布局layout 内插入控件 fontButoon,所以使用 addWidget 才是对的。

--------------------------------------------------------------------------------------------

注:文章内容主要是记录学习过程中遇到的一些问题,以及解决方法。留个记录,同时分享给有需要的人。如有不足之处,欢迎指正,谢谢!  
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值