发生异常: TypeError argument 1 has unexpected type 'NoneType' File "D:\360MoveData\Users\15312\Desktop\SQL\t.py", line 29, in __init__ self.query_button.clicked.connect(self.query("select * from Staff")) File "D:\360MoveData\Users\15312\Desktop\SQL\t.py", line 135, in <module> window = MainWindow() ^^^^^^^^^^^^ TypeError: argument 1 has unexpected type 'NoneType'
时间: 2023-08-07 15:05:47 浏览: 179
这是一个TypeError异常,错误信息指出了问题出现的位置以及问题的原因。具体来说,这个错误是因为在程序中某个地方使用了一个值为None的变量,而这个变量实际上应该是一个对象。在你提供的代码中,这个错误可能是由于在连接`query_button`的信号时,将函数`self.query("select * from Staff")`的返回值作为槽函数,而`self.query()`函数的返回值是None,因此会触发这个错误。你需要将这个槽函数更改为一个函数对象,或者使用lambda表达式来代替。例如:
```
self.query_button.clicked.connect(lambda: self.query("select * from Staff"))
```
这样就可以避免这个TypeError异常。
相关问题
Traceback (most recent call last): File "D:\360MoveData\Users\15312\Desktop\SQL\t.py", line 184, in delete_data delete_button.clicked.connect(self.delete(new_window)) TypeError: argument 1 has unexpected type 'NoneType'
这个错误是因为 `clicked.connect()` 方法需要传递一个可调用对象作为参数,但是您传递的是 `self.delete(new_window)`,这实际上是调用 `self.delete()` 方法并将其返回值传递给 `clicked.connect()` 方法,因此会报错。正确的写法是将 `self.delete()` 方法本身作为参数传递给 `clicked.connect()` 方法:
```
delete_button.clicked.connect(lambda: self.delete(new_window))
```
这样,当单击 `delete_button` 按钮时,`self.delete()` 方法会被调用,并将 `new_window` 对象作为参数传递给它。
label.textChanged.connect(acs()) TypeError: argument 1 has unexpected type 'NoneType'
这错误的原因是 `acs()` 函数被立即调用并返回了 `None`,然后将其作为参数传递给了 `connect()` 方法,而 `connect()` 方法期望的是一个函数对象而不是 `None`。
要解决这个问题,应该将 `acs()` 函数的名称作为参数传递给 `connect()` 方法,而不是立即调用它。像这样:
```
label.textChanged.connect(acs)
```
这会将 `acs` 函数本身作为参数传递给 `connect()` 方法,而不是将其返回值 `None` 传递给它。这样,当 `label` 的文本发生变化时,`acs` 函数就会被调用。