TypeError: argument 1 has unexpected type 'NoneType'(解决办法)

这篇博客介绍了在编程中遇到的TypeError问题,特别是'NoneType'类型的错误。作者强调了在使用按钮连接外部函数时,应当使用lambda进行定义,而调用内部函数则无需此步骤。通过分析ExportFile.py文件,提供了问题的解决策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

class main_widget(QWidget): # 继承自 QWidget类
    def __init__(self):
        super().__init__()
        self.initUI()  # 创建窗口

    def initUI(self):  # 在此处添加 窗口控件
        self.setGeometry(200, 300, 1000, 600)  # 屏幕上坐标(x, y), 和 窗口大小(宽,高)
        self.setWindowTitle("辅助工具")
        hbox = QHBoxLayout(self)
        self.onewidget = QWidget()
        self.vbox = QVBoxLayout(self.onewidget)

        self.tableWidget1 = QTableWidget(1, 8)

        self.tableWidget1.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
        #文字居中显示
       # self.tableWidget1.item(1, 8).setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
        #self.tableWidget1.verticalHeader().setSectionResizeMode(QHeaderView.Stretch)
       #self.tableWidget1.resize(1,1)
        self.tableWidget1.setHorizontalHeaderLabels(['版次', '产品名称', '产品料号', '责任人', '责任电话', '订单套数', '需求套数', '需求日期'])
        
        exportButton = QPushButton("export")
        tableWidget1=self.tableWidget1

        exportButton.clicked[bool].connect(lambda:ExportFile.export_file(self.tableWidget1))

 个人理解,当用pushbutton   connect时,调用外部函数时,需要给他用lambda定义。

调用自己本身内部的函数,则不需要定义

ExportFile.py

def export_file(tableWidget1): 
    try:
      data = tableWidget1.item(0, 0).text()
      print(data)
    except:
       data=''
       print("none")
#修改已有表格数据
    oldWb =xlrd.open_workbook('/Users/sr00117/Desktop/bom11.xls', formatting_info=True)#保持原格式不变

    newWb =copy(oldWb)#复制
    newWs =newWb.get_sheet(0)

    newWs.write(9, 0, "value1")

    newWs.write(9, 1, "value2")

    newWs.write(9, 2, "88")

    newWb.save('/Users/sr00117/Desktop/bom11.xls')

    print("save with same name ok")

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值