发生异常: AttributeError 'NoneType' object has no attribute 'setVisible' File "D:\360MoveData\Users\15312\Desktop\SQL\t.py", line 58, in query self.table.setHorizontalHeaderLabels(["部门", "姓名", "性别",'职位','工号','状态']).setVisible(True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\360MoveData\Users\15312\Desktop\SQL\t.py", line 51, in __init__ self.query("SELECT * FROM Staff") File "D:\360MoveData\Users\15312\Desktop\SQL\t.py", line 136, in <module> window = MainWindow() ^^^^^^^^^^^^ AttributeError: 'NoneType' object has no attribute 'setVisible'
时间: 2023-07-05 13:23:47 浏览: 117
这个错误提示说明在调用`setVisible`方法之前,`self.table`的值为`None`,即当前没有创建`QTableWidget`对象。这可能是因为在调用`setHorizontalHeaderLabels`方法时,返回了`None`,而`self.table`的值被赋为了`setHorizontalHeaderLabels`方法的返回值。这是因为`setHorizontalHeaderLabels`方法不会返回任何值,而是直接在`self.table`上设置水平表头。
因此,你需要将设置水平表头和显示水平表头的两个步骤拆分开来,如下所示:
``` python
self.table.setHorizontalHeaderLabels(["部门", "姓名", "性别", "职位", "工号", "状态"])
self.table.horizontalHeader().setVisible(True)
```
这样就能够先设置水平表头,然后再将水平表头设置为可见状态了。
相关问题
Traceback (most recent call last): File "D:\360MoveData\Users\15312\Desktop\SQL\t.py", line 204, in delete new_window.status_label.setText("数据删除成功!") ^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'bool' object has no attribute 'status_label' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "D:\360MoveData\Users\15312\Desktop\SQL\t.py", line 206, in delete new_window.status_label.setText("数据删除失败!") ^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'bool' object has no attribute 'status_label' PS D:\360MoveData\Users\15312\Desktop\SQL>
这是一个 Python 的 Traceback 错误,看起来是在一个名为 "delete" 的函数中发生了错误。具体来说,该函数似乎试图访问一个名为 "status_label" 的属性,但该属性不存在,因此出现了 AttributeError 错误。这可能是因为该属性未被正确地定义或初始化。建议检查代码并确保该属性已被正确定义和初始化。
Traceback (most recent call last): File "D:\360MoveData\Users\15312\Desktop\SQL\t.py", line 224, in <lambda> edit_button.clicked.connect(lambda: self.edit(new_window)) ^^^^^^^^^^^^^^^^^^^^^ File "D:\360MoveData\Users\15312\Desktop\SQL\t.py", line 237, in edit data1 = self.input_box.text().split(",") ^^^^^^^^^^^^^^ AttributeError: 'MainWindow' object has no attribute 'input_box'. Did you mean: 'input_box1'? PS D:\360MoveData\Users\15312\Desktop\SQL>
这个错误提示中说在 MainWindow 对象中没有找到 input_box 属性,但是有一个名为 input_box1 的属性。这意味着你的代码中有一个名为 input_box 的 QLineEdit 对象,但是它没有被正确地添加到 MainWindow 中。
你可以检查一下你的代码中是否存在一个名为 input_box 的 QLineEdit 对象,如果没有,可以尝试将代码中的 input_box 改为 input_box1。如果你确实有一个名为 input_box 的 QLineEdit 对象,那么就要检查一下这个对象是否被正确创建和添加到了 MainWindow 中。
阅读全文