类“Dialog”的未解析属性引用“setModel”

问题描述 投票:0回答:1

尝试创建一个包含 QTableView 小部件的对话框类,一切都很好,信息被插入,但我无法理解为什么 pycharm 显示错误:“未解析类‘Dialog’的属性引用‘setModel’”

所有类代码在这里:

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)

向我解释发生了什么事并提出问题的解决方案。

python pycharm pyqt5
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
© www.soinside.com 2019 - 2024. All rights reserved.