pyqt5 QTableView 例子1 setModel 获取单元格内容

代码如下:

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

import sys


class MainWidget(QWidget):
    def __init__(self):
        super(MainWidget, self).__init__()
        self.setWindowTitle('MainWidget 模板')

        self.top_layout = QVBoxLayout()
        self.setLayout(self.top_layout)
        self.resize(500, 300)

        self.data_table_view = QTableView()
        self.model = QStandardItemModel(3, 0, self)

        self.model.setHorizontalHeaderItem(0, QStandardItem("姓名"))
        self.model.setHorizontalHeaderItem(1, QStandardItem("性别"))
        self.model.setHorizontalHeaderItem(2, QStandardItem("体重(kg)"))

        for row in range(3):                                   # 2
            for column in range(3):
                item = QStandardItem('({}, {})'.format(row, column))
                self.model.setItem(row, column, item)

        #self.model.setItem()
        item1 = QStandardItem('李雷')
        self.model.setItem(0, 0, item1)

        item2 = QStandardItem('男')
        self.model.setItem(0, 1, item2)

        item3 = QStandardItem('70')
        self.model.setItem(0, 2, item3)

        self.model.appendRow([QStandardItem('韩梅'), QStandardItem('女'), QStandardItem('60'), QStandardItem('请假')])
        self.model.insertRow(4, [QStandardItem('吉姆'), QStandardItem('男'), QStandardItem('65')])
        self.data_table_view.setModel(self.model)

        self.data_table_view.horizontalHeader().setStretchLastSection(True)
        self.data_table_view.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.data_table_view.clicked.connect(self.show_info)

        self.info_label = QLabel(self)
        self.info_label.setAlignment(Qt.AlignCenter)

        self.top_layout.addWidget(self.data_table_view)
        self.top_layout.addWidget(self.info_label)

    def show_info(self):
        row = self.data_table_view.currentIndex().row()
        column = self.data_table_view.currentIndex().column()
        print('({}, {})'.format(row, column))

        data = self.data_table_view.currentIndex().data()
        self.info_label.setText(data)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = MainWidget()
    main.show()

    sys.exit(app.exec_())


在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值