[英]PyQt6 IndexError from QTableWidget
this is the mini Excel. i tried to load to csv file, and i was successed to show the table.这是迷你 Excel。我试图加载到 csv 文件,我成功地显示了表格。
So i think it's perfect.所以我认为这是完美的。 but it is not.
但事实并非如此。 PyCharm Showed me the
IndexError -\> list index out of range
PyCharm 显示
IndexError -\> list index out of range
but i can't find this problem anywhere.但我无法在任何地方找到这个问题。
this is my code.这是我的代码。 and i made a
QTableWidget
with PyQt6
Designer.我用
PyQt6
Designer 制作了一个QTableWidget
。 the table name is self.mytable
.表名是
self.mytable
。
def make_table(self, tableitems):
self.mytable.setRowCount(len(tableitems))
self.mytable.setColumnCount(len(tableitems[0]))
print(len(tableitems), len(tableitems[0]))
cnt = 0
try:
for i in range(len(tableitems)):
for j in tableitems:
self.mytable.setItem(cnt, i, QTableWidgetItem(j[i]))
cnt += 1
if cnt == len(tableitems):
cnt = 0
except Exception:
err_msg = traceback.format_exc()
print(err_msg)
def open_file(self):
filename = QFileDialog.getOpenFileName(self, "열기") #Open
table = QTableWidget()
tableitems = list()
if filename[0]:
f = open(filename[0], "r", encoding="utf-8")
with f:
datalines = csv.reader(f)
for dataline in datalines:
tableitems.append(dataline)
UI.make_table(self, tableitems)
self.infor.setText("파일 불러오기에 성공했어요!") # File has been Loaded
self.file_name = filename[0]
else:
self.infor.setText("파일 불러오기에 실패했어요!") # File hasn't been Loaded
and Traceback tell me about error's occur line.和 Traceback 告诉我错误发生的行。
self.mytable.setItem(cnt, i, QTableWidgetItem(j[i]))
~^^^
but i could't find what's the problem.但我找不到问题所在。
I also checked the csv file separately, but there was no problem. csv这个文件我也单独查过,也没有问题。
Please let me know what should i do.请让我知道我该怎么做。
really thanks for musicamante , i found the answer that what should i do.非常感谢musicamante ,我找到了我该怎么做的答案。
try:
for row, rowitems in enumerate(tableitems):
for column, item in enumerate(rowitems):
self.mytable.setItem(row, column, QTableWidgetItem(rowitems[column]))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.