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

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

演示

相关文章:

  • 题目 3320: 蓝桥杯2025年第十六届省赛真题-产值调整
  • SpringCloud基于Eureka和Feign实现一个微服务系统
  • 【深度强化学习 DRL 快速实践】异步优势演员评论员算法 (A3C)
  • 豆瓣图书数据采集与可视化分析(三)- 豆瓣图书数据统计分析
  • 基于ssm的小区物业管理系统(源码+数据库)
  • vue2实现Blod文件流下载
  • AI生成创作图片操作流程一分钟学会!
  • 多层pcb工厂哪家好?
  • Python数据分析案例72——基于股吧评论数据的情感分析和主题建模(LDA)
  • Linux:进程间通信---匿名管道
  • 影视配乐神器:专业级音乐库TOP榜
  • 头歌实训之索引
  • 【金仓数据库征文】-数据库界新兴前列者,本篇带你速懂金仓数据库!
  • PHP:点击/拖动-上传图片文件目录,并存入数据库
  • vc++ 如何调用poco库
  • 深入理解C++ 中的list容器
  • python四级考试经验(考生必看)
  • 风光储能+智能调度,这才是企业未来能源管理的最优解
  • velero备份与恢复流程是什么?
  • 《WebGIS之Vue零基础教程》(5)计算属性与侦听器
  • 魔都眼丨人形机器人“华山论剑”:拳击赛缺席,足球赛抢镜
  • 李家超称香港将部署为内地企业提供供应链服务,突破美国封锁
  • 涉军民事案件类型日益增多,最高法新规明晰管辖争议问题
  • 获公示拟任省辖市委副书记的胡军,已赴南阳履新
  • 加拿大财长:加拿大需要抗击美国关税
  • 王沪宁会见越共中央委员、越南祖国阵线中央副主席兼秘书长阮氏秋荷