当前位置: 首页 > 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)计算属性与侦听器
  • 同日哑火丢冠,双骄的下山路,手牵手一起走
  • 新华时评:防范安全事故须臾不可放松
  • 神舟十九号航天员乘组平安抵京
  • 国务院食安办:加强五一假期食品生产、销售、餐饮服务环节监管
  • 上海科创再出发:“造星”的城和“摘星”的人
  • 新片|《我仍在此》定档5月,《新·驯龙高手》同步北美上映