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日

悬赏问题

  • ¥15 DSP28335AD采集实验
  • ¥15 在winods上用C# 怎么编写CAN通信在linux运行
  • ¥15 关于螺旋焊缝的图像处理
  • ¥15 qt 散点图自定义图形
  • ¥100 将USDZ文件转化为带颜色的OBJ文件
  • ¥15 对象代号: , 表单: 不存在!
  • ¥15 WebSocket的问题
  • ¥15 centos上启动kylin后网页报错404
  • ¥20 使用hackrf进行信号收发时接收到的信号幅度太小
  • ¥15 WebSocket的问题