網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
PyQt5 tableWidget 居中顯示
newItem = QTableWidgetItem("內(nèi)容")
# 居中顯示
newItem.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
PyQt5 TableWidGet問(wèn)題
使用pyqt5展示excel的數(shù)據(jù)到桌面,并獲取選中的數(shù)據(jù)內(nèi)容
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import pandas as pd
import numpy as np
class Ui_MainWindow(QMainWindow):
def __init__(self):
super(QtWidgets.QMainWindow, self).__init__()
self.setupUi(self)
self.retranslateUi(self)
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(666, 488)
self.centralWidget = QtWidgets.QWidget(MainWindow)
self.centralWidget.setObjectName("centralWidget")
self.retranslateUi(MainWindow)
self.tableWidget = QtWidgets.QTableWidget(self.centralWidget)
self.tableWidget.setGeometry(QtCore.QRect(0, 60, 813, 371))
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(0)
self.tableWidget.setRowCount(0)
self.tableWidget.setStyleSheet("selection-background-color:pink")
self.tableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers)
self.tableWidget.setSelectionBehavior(QTableWidget.SelectRows)
self.tableWidget.raise_()
# 設(shè)置圖標(biāo)
self.pushButton = QtWidgets.QPushButton(self.centralWidget)
self.pushButton.setGeometry(QtCore.QRect(90, 20, 75, 23))
self.pushButton.setObjectName("pushButton")
self.pushButton.setText("打開(kāi)")
MainWindow.setCentralWidget(self.centralWidget)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.pushButton.clicked.connect(self.openfile)
self.pushButton.clicked.connect(self.creat_table_show)
# 確定
self.okButton = QtWidgets.QPushButton(self.centralWidget)
self.okButton.setGeometry(QtCore.QRect(180, 20, 75, 23))
self.okButton.setObjectName("okButton")
self.okButton.setText("確定")
MainWindow.setCentralWidget(self.centralWidget)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.okButton.clicked.connect(self.get_select)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "測(cè)試數(shù)據(jù)"))
MainWindow.setWindowIcon(QIcon("./head.jpg"))
# MainWindow.show()
def get_select(self):
# print(self.tableWidget.columnCount()) # 返回列數(shù)
# print(self.tableWidget.rowCount()) # 返回行數(shù)
colomn = self.tableWidget.columnCount()
row_list = set()
for i in self.tableWidget.selectionModel().selection().indexes():
row_list.add(i.row())
# print(row_list)
select_data = []
for row in row_list:
row_data = [self.tableWidget.item(row, p).text() for p in range(colomn)]
select_data.append(row_data)
print(select_data)
def openfile(self):
# 獲取路徑
openfile_name = QFileDialog.getOpenFileName(self, '選擇文件', '', 'Excel files(*.xlsx , *.xls)')
#print(openfile_name)
global path_openfile_name
path_openfile_name = openfile_name[0]
def creat_table_show(self):
# 讀取表格,轉(zhuǎn)換表格
if len(path_openfile_name) > 0:
input_table = pd.read_excel(path_openfile_name)
# print(1,input_table)
input_table_rows = input_table.shape[0]
input_table_colunms = input_table.shape[1]
# print(2,input_table_rows)
# print(3,input_table_colunms)
input_table_header = input_table.columns.values.tolist()
#print(input_table_header)
#讀取表格,轉(zhuǎn)換表格,給tablewidget設(shè)置行列表頭
self.tableWidget.setColumnCount(input_table_colunms)
self.tableWidget.setRowCount(input_table_rows)
self.tableWidget.setHorizontalHeaderLabels(input_table_header)
#給tablewidget設(shè)置行列表頭
#遍歷表格每個(gè)元素,同時(shí)添加到tablewidget中
for i in range(input_table_rows):
input_table_rows_values = input_table.iloc[[i]]
#print(input_table_rows_values)
input_table_rows_values_array = np.array(input_table_rows_values)
input_table_rows_values_list = input_table_rows_values_array.tolist()[0]
#print(input_table_rows_values_list)
for j in range(input_table_colunms):
input_table_items_list = input_table_rows_values_list[j]
#print(input_table_items_list)
# print(type(input_table_items_list))
#將遍歷的元素添加到tablewidget中并顯示
input_table_items = str(input_table_items_list)
newItem = QTableWidgetItem(input_table_items)
newItem.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
self.tableWidget.setItem(i, j, newItem)
#遍歷表格每個(gè)元素,同時(shí)添加到tablewidget中
else:
self.centralWidget.show()
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
原文鏈接:https://blog.csdn.net/qq_27694835/article/details/111669093
相關(guān)推薦
- 2022-11-05 Android?View轉(zhuǎn)換為Bitmap實(shí)現(xiàn)應(yīng)用內(nèi)截屏功能_Android
- 2022-10-06 一文掌握python中的時(shí)間包_python
- 2021-12-18 linux下安裝redis圖文詳細(xì)步驟_Redis
- 2022-07-17 gethostbyaddr在Python3中引發(fā)UnicodeDecodeError_python
- 2022-12-01 C++中單鏈表操作的示例代碼_C 語(yǔ)言
- 2022-12-23 Android用注解與反射實(shí)現(xiàn)Butterknife功能_Android
- 2022-04-01 k8s報(bào)錯(cuò):Error from server (NotFound): the server cou
- 2022-07-26 pyspark中udf寫(xiě)法及其使用
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支