xiaobaiputhon 2023-01-18 06:40 采纳率: 75%
浏览 90
已结题

python-pyqt5- .clicked.connect

用的是python3.0 win系统

问题出现在 代码第35行
如图 add_button.clicked.后面根本就导入不了别的模块 强制把代码写上去的话 会变成灰色 然后报错

img

img

import os
import sys
from PyQt5.QtCore import Qt  # 不允许被修改时用
from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget, QHBoxLayout, QVBoxLayout
from PyQt5.QtWidgets import QPushButton, QLineEdit, QTableWidget, QTableWidgetItem, QLabel


class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('文哥专属')
        self.resize(980, 450)
        # 窗体位置
        qr = self.frameGeometry()
        cp = QDesktopWidget().availableGeometry().center()
        qr.moveCenter(cp)
        # 创建总布局
        layout = QVBoxLayout()  # QVBoxLayout是垂直布局
        # 创建1个水平布局 添加到总布局
        layout.addLayout(self.two_layout())
        # 设置弹簧
        layout.addStretch()
        # 给窗体设置元素的排列方式
        self.setLayout(layout)

    def two_layout(self):
        # 2.创建搜索框菜单布局
        two_layout = QHBoxLayout()
        # 2.1 创建输入框
        input_line = QLineEdit()
        input_line.setPlaceholderText("请输入商品名")
        two_layout.addWidget(input_line)
        # 2.2 创建按钮
        add_button = QPushButton("添加")

        # 这里是第35行  出现错误的地方
        add_button.clicked.connect(self.event_add_click())

        two_layout.addWidget(add_button)

        return two_layout

    def event_add_click(self):
        pass


if __name__ == '__main__':
    app = QApplication(sys.argv)

    window = MainWindow()
    window.show()

    sys.exit(app.exec_())

#运行结果及详细报错内容#

D:\pycharm文件\pyqt5\venv\Scripts\python.exe D:/pycharm文件/pyqt5/test1.py
Traceback (most recent call last):
File "D:\pycharm文件\pyqt5\test1.py", line 47, in
window = MainWindow()
File "D:\pycharm文件\pyqt5\test1.py", line 20, in init
layout.addLayout(self.two_layout())
File "D:\pycharm文件\pyqt5\test1.py", line 35, in two_layout
add_button.clicked.connect(self.event_add_click())
TypeError: argument 1 has unexpected type 'NoneType'

进程已结束,退出代码1

最后附上全代码 以及报错的图

img

img

img

  • 写回答

7条回答 默认 最新

  • 流比 2023-01-18 08:35
    关注

    第35行应该是这样:

    add_button.clicked.connect(self.event_add_click)

    而不是:

    add_button.clicked.connect(self.event_add_click())

    因为你需要连接的是event_add_click函数本身,而不是它的执行结果。

    这样就可以正常执行了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(6条)

报告相同问题?

问题事件

  • 系统已结题 1月27日
  • 已采纳回答 1月19日
  • 修改了问题 1月18日
  • 创建了问题 1月18日

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装