当前位置: 首页 > ai >正文

PyQt6基础_QTableWidget

目录

描述:

代码

演示


描述:

1 单击选中一行

2 右键菜单

3 填充数据

4 提取行数据

5 删除行数据

代码

from PyQt6.QtCore import (Qt
)
from PyQt6.QtGui import (
QAction
)
from PyQt6.QtWidgets import (QApplication,QAbstractItemView,QLabel,QTableWidget,QTableWidgetItem,QWidget,QVBoxLayout,QMenu
)class TempWidget(QWidget):def __init__(self):super().__init__()self.label = QLabel('--')self.label1 = QLabel('--')self.table = QTableWidget()self.table.setColumnCount(3)self.table.setHorizontalHeaderLabels(['代码','名称','细分行业'])self.table.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)self.table.setSelectionMode(QAbstractItemView.SelectionMode.SingleSelection)self.table.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows)self.table.itemClicked.connect(self.table_itemClicked)self.context_menu = QMenu(self)get_action = QAction('提取',self)delete_action = QAction('删除',self)self.context_menu.addAction(get_action)self.context_menu.addAction(delete_action)get_action.triggered.connect(self.get_action_triggered)delete_action.triggered.connect(self.delete_action_triggered)self.table.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)self.table.customContextMenuRequested.connect(self.table_customContextMenuRequested)layout = QVBoxLayout()layout.addWidget(self.label)layout.addWidget(self.label1)layout.addWidget(self.table)self.setLayout(layout)self.open_init()passdef open_init(self):data_list = [['600519','贵州茅台','白酒'],['601398','工商银行','银行'],['601288','农业银行','银行'],['601857','中国石油','石油开采'],['300750','宁的时代','电气设备'],['600900','长江电力','水力发电'],]self.table.setRowCount(len(data_list))for r,row in enumerate(data_list):for c,v in enumerate(row):self.table.setItem(r,c,QTableWidgetItem(str(v)))self.table.resizeColumnsToContents()passdef table_itemClicked(self,cur_item: QTableWidgetItem):cur_row = cur_item.row()self.label.setText(f'当前选中的行号为:{cur_row}')passdef get_action_triggered(self):selected = self.table.selectedIndexes()if selected:row = selected[0].row()col_count = self.table.columnCount()res_str = ''for i in range(col_count):res_str += self.table.item(row,i).text() + ';'self.label1.setText(res_str)passdef delete_action_triggered(self):selected = self.table.selectedIndexes()if selected:row = selected[0].row()self.table.removeRow(row)passdef table_customContextMenuRequested(self,pos):self.context_menu.exec(self.table.viewport().mapToGlobal(pos))passif __name__ == '__main__':app = QApplication([])mw = TempWidget()mw.show()app.exec()pass

演示

http://www.xdnf.cn/news/2020.html

相关文章:

  • MSVCP140.dll丢失的解决方法:详细修复指南进一步了解MSVCP140.dll
  • SCI论文结构笔记
  • 【鸿蒙HarmonyOS】深入理解一端开发,多端部署
  • WINDOWS 下Maven 安装及配置教程
  • javaweb-cook-会话
  • 力扣热题——统计最大组的数目
  • 黑马Redis(三)黑马点评项目
  • 【昇腾】【训练】800TA2-910B使用LLaMA-Factory训练Qwen
  • 系统架构师2025年论文《微服务架构3》
  • 软件开发管理制度,项目研发制度,项目管理制度
  • 解决Spring Boot多模块自动配置失效问题
  • 如何把两个视频合并成一个视频?无需视频编辑器即可搞定视频合并
  • 【Java面试笔记:进阶】19.Java并发包提供了哪些并发工具类?
  • linux基础操作1------(文件命令)
  • STM32系列官方标准固件库的完整下载流程
  • MySql 数据 结构 转为SqlServer (简单)
  • WSL2-自定义安装
  • LLM数学推导——Transformer问题集——注意力机制——稀疏/高效注意力
  • Kafka与Spark-Streaming
  • 7.0 sharpScada的sql数据的安装
  • Oracle Recovery Tools修复ORA-00742、ORA-600 ktbair2: illegal inheritance故障
  • ubuntu使用dify源码安装部署教程+避坑指南
  • 系统架构-安全架构设计
  • PS读写BRAM
  • 【从零开始:自制一个Java消息队列(MQ)】
  • Ubuntu18.04更改时区(图文详解)
  • 二叉树的遍历(深度优先搜索)
  • 如何确保微型导轨的质量稳定?
  • 【FAS】《Face Detection Algorithm Based on Lightweight Network and Near Infrared》
  • 张 LLM提示词拓展16中方式