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

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 Stata链式中介效应代码修改
  • ¥15 latex投稿显示click download
  • ¥15 请问读取环境变量文件失败是什么原因?
  • ¥15 在若依框架下实现人脸识别
  • ¥15 添加组件无法加载页面,某块加载卡住
  • ¥15 网络科学导论,网络控制
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错