PyQt5 tableWidget 居中显示

newItem = QTableWidgetItem("内容")
# 居中显示
newItem.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)

PyQt5 TableWidGet问题

使用pyqt5展示excel的数据到桌面,并获取选中的数据内容

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_()
        # 设置图标

        self.pushButton = QtWidgets.QPushButton(self.centralWidget)
        self.pushButton.setGeometry(QtCore.QRect(90, 20, 75, 23))
        self.pushButton.setObjectName("pushButton")
        self.pushButton.setText("打开")
        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", "测试数据"))
        MainWindow.setWindowIcon(QIcon("./head.jpg"))
        # MainWindow.show()

    def get_select(self):
        # print(self.tableWidget.columnCount()) # 返回列数
        # print(self.tableWidget.rowCount())  # 返回行数
        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):
        # 读取表格,转换表格
        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)
            #读取表格,转换表格,给tablewidget设置行列表头
            self.tableWidget.setColumnCount(input_table_colunms)
            self.tableWidget.setRowCount(input_table_rows)
            self.tableWidget.setHorizontalHeaderLabels(input_table_header)
            #给tablewidget设置行列表头
            #遍历表格每个元素,同时添加到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)
        #遍历表格每个元素,同时添加到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_())

以上为个人经验,希望能给大家一个参考,也希望大家多多支持Devmax。

PyQt5实现tableWidget 居中显示的更多相关文章

  1. 基于PyQt5实现状态栏(statusBar)显示和隐藏功能

    这篇文章主要为大家详细介绍了如何利用PyQt5实现状态栏显示和隐藏功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

  2. 基于PyQt5完成的PDF拆分功能

    这篇文章主要介绍了基于PyQt5完成的PDF拆分功能,本文介绍的pdf拆分功能还有一些待完善地方,例如可增加预览功能,实现每页预览,以及如何实现多条件拆分,需要的朋友可以参考下

  3. PyQt5实现tableWidget 居中显示

    这篇文章主要介绍了PyQt5实现tableWidget 居中显示方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  4. 关于pyqt5弹出提示框的详细介绍

    在实际的程序开发中经常会用到各种各样的消息框来给用户一些提示或提醒,下面这篇文章主要给大家介绍了关于pyqt5弹出提示框的详细介绍,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

  5. jquery单击文字或图片内容放大并居中显示

    这篇文章主要为大家详细介绍了jquery单击文字或图片内容放大并居中显示,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  6. 基于PyQt5完成pdf转word功能

    本文介绍的pdf转word功能还有一些待完善地方,例如可增加预览功能,实现每页预览,当然我们可以在后续阶段逐渐完善,对基于PyQt5完成的pdf转word功能感兴趣的朋友一起看看吧

  7. 基于PyQt5制作一个截图翻译工具

    这篇文章主要为大家介绍了如何利用PyQt5制作一个简单的截图翻译工具,具有截图功能、翻译功能和文字识别OCR,需要的可以参考一下

  8. 使用Pyqt5制作屏幕录制界面功能

    这篇文章主要介绍了使用Pyqt5制作屏幕录制界面,主要介绍如何使用ffmpeg将同时录制的屏幕录像和音频合成为有声音的屏幕录像,需要的朋友可以参考下

  9. 使用python+Pyqt5实现串口调试助手

    这篇文章主要介绍了使用python+Pyqt5实现串口调试助手,串口通讯程序首先要对串口进行设置,如波特率、数据位、停止位、校验位等,需要的朋友可以参考下

  10. 基于PyQt5实现一个无线网连接器

    为了方便不会python的朋友也能够使用,本文将用pyqt5将制作一个带界面的无线网连接器,文中的示例代码讲解详细,感兴趣的可以了解一下

随机推荐

  1. 10 个Python中Pip的使用技巧分享

    众所周知,pip 可以安装、更新、卸载 Python 的第三方库,非常方便。本文小编为大家总结了Python中Pip的使用技巧,需要的可以参考一下

  2. python数学建模之三大模型与十大常用算法详情

    这篇文章主要介绍了python数学建模之三大模型与十大常用算法详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感想取得小伙伴可以参考一下

  3. Python爬取奶茶店数据分析哪家最好喝以及性价比

    这篇文章主要介绍了用Python告诉你奶茶哪家最好喝性价比最高,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

  4. 使用pyinstaller打包.exe文件的详细教程

    PyInstaller是一个跨平台的Python应用打包工具,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,下面这篇文章主要给大家介绍了关于使用pyinstaller打包.exe文件的相关资料,需要的朋友可以参考下

  5. 基于Python实现射击小游戏的制作

    这篇文章主要介绍了如何利用Python制作一个自己专属的第一人称射击小游戏,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手试一试

  6. Python list append方法之给列表追加元素

    这篇文章主要介绍了Python list append方法如何给列表追加元素,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  7. Pytest+Request+Allure+Jenkins实现接口自动化

    这篇文章介绍了Pytest+Request+Allure+Jenkins实现接口自动化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  8. 利用python实现简单的情感分析实例教程

    商品评论挖掘、电影推荐、股市预测……情感分析大有用武之地,下面这篇文章主要给大家介绍了关于利用python实现简单的情感分析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

  9. 利用Python上传日志并监控告警的方法详解

    这篇文章将详细为大家介绍如何通过阿里云日志服务搭建一套通过Python上传日志、配置日志告警的监控服务,感兴趣的小伙伴可以了解一下

  10. Pycharm中运行程序在Python console中执行,不是直接Run问题

    这篇文章主要介绍了Pycharm中运行程序在Python console中执行,不是直接Run问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

返回
顶部