table list

#ffffff
#f9f9f9
#dbe5f5

#ebebeb

 

 

tr:#ffffff
tr:#f9f9f9
tr_hover:#dbe5f5

border:1px #ebebeb solid;


color: #0039A6


border:#b5b8c8

bg:#ffffdd

focus:#7EADD9
disabled:#f0f0f0

### PyQt5 Table List Widget Example Usage PyQt5 提供了一个强大的 `QTableWidget` 类来创建表格视图并管理数据。下面是一个关于如何使用 `QTableWidget` 创建一个简单的表单列表的示例。 #### 设置 QTableWidget 基本结构 可以通过设置行数和列数以及填充单元格中的内容来初始化 `QTableWidget`: ```python from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem class MainWindow(QMainWindow): def __init__(self): super().__init__() self.table_widget = QTableWidget(self) self.setCentralWidget(self.table_widget) # Set number of rows and columns self.table_widget.setColumnCount(3) self.table_widget.setRowCount(4) # Add headers to the table self.table_widget.setHorizontalHeaderLabels(['Name', 'Age', 'City']) # Populate the table with data items = [ ['Alice', '28', 'New York'], ['Bob', '24', 'Los Angeles'], ['Charlie', '30', 'Chicago'], ['David', '27', 'Houston'] ] for row_index, row_data in enumerate(items): for col_index, cell_data in enumerate(row_data): item = QTableWidgetItem(cell_data) self.table_widget.setItem(row_index, col_index, item) app = QApplication([]) window = MainWindow() window.show() app.exec_() ``` 上述代码展示了如何通过嵌套循环向 `QTableWidget` 添加项目,并设置了水平方向上的标题[^1]。 #### 动态更新表格内容 如果需要动态更改或添加新条目到现有的 `QTableWidget` 表格中,则可以利用其内置方法如 `.insertRow()` 和 `.setItem()`. 下面展示了一种增加新记录的方式: ```python def add_new_record(self, name, age, city): current_row_count = self.table_widget.rowCount() self.table_widget.insertRow(current_row_count) self.table_widget.setItem(current_row_count , 0, QTableWidgetItem(name)) self.table_widget.setItem(current_row_count , 1, QTableWidgetItem(age)) self.table_widget.setItem(current_row_count , 2, QTableWidgetItem(city)) # 使用实例 window.add_new_record('Eve', '29', 'San Francisco') ``` 此函数接受三个参数分别代表姓名、年龄和城市,随后将其作为新的一行加入至表格底部[^1]. #### 获取选中项的信息 当用户点击某一行或者某些特定单元格时,可能希望获取这些被选中的信息做进一步处理。这可通过监听信号槽机制完成: ```python selected_rows = self.table_widget.selectionModel().selectedRows() for index in sorted(selected_rows): print(f"Row {index.row()} is selected.") for column in range(self.table_widget.columnCount()): try: data = str(self.table_widget.item(index.row(), column).text()) print(f"\tColumn {column}: {data}") except AttributeError: print("\tNo value found") ``` 这里遍历所有选定行并通过迭代每列提取对应的数据值[^1]. 如果某个单元格为空则会抛出异常因此加入了错误捕获逻辑.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值