import sys
from PyQt5.QtWidgets import QApplication, QTableWidgetItem, QTableWidget
app = QApplication(sys.argv)
# tablewidget相关属性设置
ui_1 = QTableWidget()
ui_1.setRowCount(3)
ui_1.setColumnCount(3)
ui_1.resize(400,400)
item_1 = QTableWidgetItem("水果")
ui_1.setItem(1,1,item_1)
# 循环遍历获取单元格内容
row_count_1 = ui_1.rowCount() # 获取行数
column_count_1 = ui_1.columnCount() # 获取列数
print(f"1:\t{row_count_1}") # 打印看一看具体数值是多少
print(f"2:\t{column_count_1}")
list_tablewidget_data_1 = []
for i in range(row_count_1):
for j in range(column_count_1):
data_1 = ui_1.item(i,j)
print(f"3:\t{data_1}")
list_tablewidget_data_1.append(data_1)
print(f"4:\t{list_tablewidget_data_1}")
# 判断是否有空白单元格
if None in list_tablewidget_data_1:
print("列表中有空白单元格,不可进行读取操作,请补全数据")
else:
print("列表中没有空白单元格,可进行读取操作")
a_1 = 1
print(f"5:\t{a_1}")
# 优点:if语句没有放在for in循环中
ui_1.show()
sys.exit(app.exec_())
此处代码的优点是:if判断语句放置在for in循环之外,不受循环影响。
注:
1、此处没有用到绘制的ui界面
2、用item获取单元格数据,若有数据,会返回一串代码,如<PyQt5.Qtwidgets......>。若没有数据,则会返回None值。
3、使用.text()函数获取单元格内容前,请先判断一下是否有空白单元格,因为空白单元格对应的None值在.text()函数中无法识别为文本,会报错,程序也会跟着崩溃
写在最后
如果解决了你长久以来的困惑,记得点赞评论收藏哦~
如果解决了你的燃眉之急,荣幸之至,还请记得赞赏哟~