像素艺术家 2023-10-15 13:41 采纳率: 89.7%
浏览 34

pyqt5的tableview表格控件写入数据不显示

我想向pyqt5的tableview表格控件写入数据,但是不知道为什么不显示,代码和运行效果如下:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableView, QAbstractItemView, QMessageBox
from PyQt5.QtGui import QStandardItemModel, QStandardItem
from PyQt5.QtCore import Qt


class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.model = QStandardItemModel()
        self.model.setHorizontalHeaderLabels(['Name', 'Age', 'Gender'])
        self.table_view = QTableView()
        self.table_view.setModel(self.model)
        self.setCentralWidget(self.table_view)

        # Add data to the table
        data = [('Alice', 20, 'Female'),
                ('Bob', 25, 'Male'),
                ('Charlie', 30, 'Male')]
        for row in data:
            self.add_row(row[0], row[1], row[2])

    def add_row(self, name, age, gender):
        parent = QStandardItem()
        row = [QStandardItem(name), QStandardItem(str(age)), QStandardItem(gender)]
        parent.appendRow(row)
        self.model.appendRow(parent)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec_())


运行结果:

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-15 16:04
    关注

    【以下回答由 GPT 生成】

    以markdown格式返回的答案:

    import sys
    from PyQt5.QtWidgets import QApplication, QMainWindow, QTableView, QAbstractItemView, QMessageBox
    from PyQt5.QtGui import QStandardItemModel, QStandardItem
    from PyQt5.QtCore import Qt
    
    class MyWindow(QMainWindow):
        def __init__(self):
            super().__init__()
            self.model = QStandardItemModel(self)
            self.model.setHorizontalHeaderLabels(['Name', 'Age', 'Gender'])
            self.table_view = QTableView()
            self.table_view.setModel(self.model)
            self.table_view.setSelectionBehavior(QAbstractItemView.SelectRows) 
            self.setCentralWidget(self.table_view)
    
            data = [('Alice', 20, 'Female'),
                    ('Bob', 25, 'Male'),
                    ('Charlie', 30, 'Male')]
            for row in data:
                self.add_row(row[0], row[1], row[2])
    
        def add_row(self, name, age, gender):
            parent = QStandardItem()
            parent.setText(name)
            row = [QStandardItem(name), QStandardItem(str(age)), QStandardItem(gender)]
            parent.appendRow(row)
            self.model.appendRow(parent)
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        window = MyWindow()
        window.table_view.resizeColumnsToContents()
        window.show()
        sys.exit(app.exec_())
    

    通过以上修改,您应该能够成功地向pyqt5的tableview表格控件写入数据并显示出来。希望这能帮助到您!如果您还有其他问题,请随时提问。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 10月15日