pyqt5 tableview,pyqt5中tablewidget添加数据
这篇文章主要介绍了PyQt5实现表格小部件居中显示方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
目录
PyQt5表格小部件居中显示PyQt5表格小部件问题
PyQt5 tableWidget 居中显示
newItem=QTableWidgetItem(内容)
# 居中显示
新项目。设置校准(Qt .阿利根中心 Qt .AlignVCenter)
PyQt5 TableWidGet问题
使用pyqt5展示超过的数据到桌面,并获取选中的数据内容
从PyQt5导入QtCore、QtGui、QtWidgets
来自PyQt5 .模块进口QIcon
来自PyQt5 .QtWidgets导入*
来自PyQt5 .QtCore导入*
进口熊猫作为螺纹中径
将数组作为铭牌导入
类Ui _主窗口(QMainWindow):
def __init__(self):
超级(QtWidgets .QMainWindow,self).__init__()
self.setupUi(self)
self.retranslateUi(self)
def setupUi(自身,主窗口):
主窗口。设置对象名称(“主窗口”)
主窗口。调整大小(666488)
self.centralWidget=QtWidgets .QWidget(主窗口)
自我。centralWidget。设置对象名称( centralWidget )
self.retranslateUi(主窗口)
self.tableWidget=QtWidgets .QTableWidget(self。centralwidget)
自我。表格小部件。设置几何图形(Qt核心部分.QRect(0,60,813,371))
自我。表格小部件。设置对象名称(“表格小部件”)
自我。表格小部件。setcolumncount(0)
self.tableWidget.setRowCount(0)
自我。表格小部件。设置样式表(“选择-背景-颜色:粉红色”)
自我。表格小部件。setedit触发器(QAbstractItemView .无编辑触发器)
自我。表格小部件。setselectionbehavior(QTableWidget .选择行)
self.tableWidget.raise_()
# 设置图标
self.pushButton=QtWidgets .q按钮(self.centralWidget)
自我。按钮。设置几何图形(Qt核心部分.QRect(90,20,75,23))
自我。按钮。设置对象名称(“按钮”)
self.pushButton.setText(打开)
主窗口。setcentralwidget(self。centralwidget)
QtCore .QMetaObject.connectSlotsByName(主窗口)
自我。按钮。点击了。连接(自我。openfile)
自我。按钮。点击了。连接(自我。创建_表格_显示)
# 确定
self.okButton=QtWidgets .q按钮(自身
.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_())
以上为个人经验,希望能给大家一个参考,也希望大家多多支持盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。