类 'Dialog' 的未解析属性引用 'setModel
我正在尝试创建一个对话框类,这个类里会包含一个QTableView控件,一切都很好,信息也能插入进去。但是我不明白为什么PyCharm会显示错误:“未解决的属性引用 'setModel' 对于类 'Dialog'”。
这里是整个类的代码:
from PyQt5.QtGui import QStandardItemModel, QStandardItem
from PyQt5.QtWidgets import QDialog, QTableView
from PyQt5.uic import loadUi
class Dialog(QDialog):
def __init__(self):
super(Dialog, self).__init__()
loadUi("dialog.ui", self)
self.table = self.findChild(QTableView, "tableView")
def fill_table(self, data):
column_names = ["full_name", "mail", "age", "phone_number"]
model = QStandardItemModel(1, 4)
model.setHorizontalHeaderLabels(column_names)
for col_idx in range(4):
item = QStandardItem(data[col_idx])
model.setItem(0, col_idx, item)
self.table.setModel(model)
给我解释一下发生了什么,并建议解决这个问题的方法。
1 个回答
0
你可以使用类型提示来确保 PyCharm 知道动态创建的对象是什么类型的:
class Dialog(QDialog):
def __init__(self):
super(Dialog, self).__init__()
loadUi("dialog.ui", self)
self.table: QTableView = self.findChild(QTableView, "tableView")
或者可以不使用多余的 findChild
方法
class Dialog(QDialog):
def __init__(self):
super(Dialog, self).__init__()
loadUi("dialog.ui", self)
self.tableView: QTableView