【发布时间】:2020-08-27 19:50:44
【问题描述】:
我正在使用 PyQt5,并希望将 csv 文件中的值与用户通过 QLineEdit() 估算的值进行比较。然后,如果值相同,我想将整行导入到 QTableWidget。
csv 文件包含 3 个不同的列,分别具有宽度值、高度值和厚度值。
我已经试过这个来解决第一个问题:
import csv
with open('csvTest.csv') as file:
reader = csv.reader(file)
for row in reader:
if row[0] == self.widthTextbox.text() or row[1] == self.heightTextbox.text() or row[2] == self.thickTextbox.text():
print("Found: {}".format(row))
这不起作用,我知道使用“或”是有问题的,因为我希望它像过滤器一样,所以如果用户只输入三个属性之一,他会得到一些行,如果他输入两个他会得到更少的行,如果他输入所有三个,他会得到更少。但是使用“或”允许任何符合任何条件的行都有效。
第二个问题是,如果这可行,我想使用 self.tableWidget.setRowCount('''number of rows found''') 之类的东西使表中的行数等于通过过滤器的行数。
最后,最后一个问题是使 QTableWidget 行与过滤器找到的行相同。
【问题讨论】:
标签: python csv pyqt5 qtablewidget