python中复制粘贴快捷键_PyQT5 实现快捷键复制表格数据的方法示例

本文主要介绍了PyQT5 实现快捷键复制表格数据的方法示例,分享给大家,具体如下:

表格数据如下:

# -*- coding:utf-8 -*-

import pyperclip

from PyQt5.QtWidgets import QApplication, QWidget

from PyQt5.QtGui import QStandardItemModel, QStandardItem

from PyQt5.QtCore import Qt

from PyQt5 import QtCore, QtWidgets

# 复制选择表格数据

def selected_tb_text(table_view):

try:

indexes = table_view.selectedIndexes() # 获取表格对象中被选中的数据索引列表

indexes_dict = {}

for index in indexes: # 遍历每个单元格

row, column = index.row(), index.column() # 获取单元格的行号,列号

if row in indexes_dict.keys():

indexes_dict[row].append(column)

else:

indexes_dict[row] = [column]

# 将数据表数据用制表符(\t)和换行符(\n)连接,使其可以复制到excel文件中

text = ''

for row, columns in indexes_dict.items():

row_data = ''

for column in columns:

data = table_view.model().item(row, column).text()

if row_data:

row_data = row_data + '\t' + data

else:

row_data = data

if text:

text = text + '\n' + row_data

else:

text = row_data

return text

except BaseException as e:

print(e)

return ''

class Ui_Form(object): # UI类

def setupUi(self, Form):

Form.setObjectName("Form")

self.tableView = QtWidgets.QTableView(Form)

self.tableView.setEnabled(True)

self.tableView.setGeometry(QtCore.QRect(5, 5, 400, 200))

self.tableView.setObjectName("tableView")

QtCore.QMetaObject.connectSlotsByName(Form)

# 逻辑类

class StartRun(QWidget, Ui_Form):

def __init__(self):

super().__init__()

self.init_ui() # 实例化窗体

self.show()

def init_ui(self):

self.setupUi(self) # 实例化控件

self.update_table_view()

def update_table_view(self):

data = [

(1, '张三', 18),

(2, '李四', 29),

(3, '王五', 25),

(4, '赵六', 26),

]

columns = ['id', 'name', 'age']

model = QStandardItemModel(len(data), len(columns)) # 设置数据层次结构,rows行cols列

model.setHorizontalHeaderLabels([str(i) for i in columns]) # 设置列名

for row in range(len(data)):

for column in range(len(data[row])):

item = QStandardItem(str(data[row][column]))

model.setItem(row, column, item) # 设置每个位置的文本值

self.tableView.setModel(model) # 实例化表格视图,设置模型为自定义的模型

def keyPressEvent(self, event): # 重写键盘监听事件

# 监听 CTRL+C 组合键,实现复制数据到粘贴板

if (event.key() == Qt.Key_C) and QApplication.keyboardModifiers() == Qt.ControlModifier:

text = selected_tb_text(self.tableView) # 获取当前表格选中的数据

if text:

pyperclip.copy(text) # 复制数据到粘贴板

if __name__ == '__main__':

import sys

app = QApplication(sys.argv)

S = StartRun()

sys.exit(app.exec_())

到此这篇关于PyQT5 实现快捷键复制表格数据的方法示例的文章就介绍到这了,更多相关PyQT5 快捷键复制表格数据内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

本文标题: PyQT5 实现快捷键复制表格数据的方法示例

本文地址: http://www.cppcns.com/jiaoben/python/321493.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值