立秋6789 2023-10-15 13:41 采纳率: 89.7%
浏览 13

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日

悬赏问题

  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥15 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?