第一次用PYQT5写界面实现分页时想把当前数据的总页数用lineEdit或label显示在界面上,但每到执行setText操作时程序就会崩溃,且不显示错误代码。
部分代码如下:
def on_actiondakai_triggered(self):
# 设置当前事件页面
self.stackedWidget.setCurrentIndex(0)
# 设置页面上表格垂直列不可见
self.tableWidget.verticalHeader().setVisible(False)
# 选择上传数据的文件(仅支持csv文件格式)
fname, _ = QFileDialog.getOpenFileName(self, 'Open file', '.../', 'Text files(*.csv)')
# 打开文件(以分号作为分隔符)并将数据显示在表当中
csvfile = open( fname,'r')
reader = [each for each in csv.reader(csvfile, delimiter=';')]
header = []
data_list = []
count = 0
for line in reader:
if(count == 0):
# 读表头
header.append(line)
else:
# 读数据
data_list.append(line)
count = count + 1
# print(line)
# 设置表格的行数(设置表格每一页仅有13行)
rowcount = len(data_list)
self.tableWidget.setRowCount(rowcount)
# print("rowcount is:",rowcount)
# 设置表格的列数
colcount = len(data_list[0])
self.tableWidget.setColumnCount(colcount)
# print("colcount is:",colcount)
# 设置水平表头
header_list = []
for header in header[0]:
header_list.append(header)
# print("tabel_header:", header_list)
self.tableWidget.setHorizontalHeaderLabels(header_list)
# 设置表格列宽
self.tableWidget.setColumnWidth(0, 80)
self.tableWidget.setColumnWidth(1, 200)
self.tableWidget.setColumnWidth(2, 90)
self.tableWidget.setColumnWidth(3, 960)
self.tableWidget.setColumnWidth(4, 250)
self.tableWidget.setColumnWidth(5, 200)
###分页###
# 每页13条数据
page_num = 13
nowpage = 1
pages = math.ceil(rowcount / page_num)
##########
# 单行文本框不可编辑并赋值
###只要执行setText的语句都会使程序崩溃###
# self.pages_1.setText(13)
# self.pages_1.setReadOnly(True)
# self.nowpage_1.setText(nowpage)
# self.nowpage_1.setReadOnly(True)
print("总页数:",pages)
self.label_18.setText("共"+pages+"页,第"+nowpage+"页")
# 给表格写入数据
for row in range(rowcount):
for col in range(colcount):
if(row <= 13):
self.tableWidget.setItem(row, col, QTableWidgetItem(data_list[row][col]))
# 设置表格不可编辑
self.tableWidget.setEnabled(False)
我想请问一下这是什么原因?该怎么解决?
你用debug模式就能看到程序异常了
字符串和数字不能直接相加,要不就转化成字符串,要不就format添加