纳速健身
标题:
pyqt5中使用了QTableWidget赋值后没有显示内容的解决办法
[打印本页]
作者:
awagink
时间:
2021-1-4 20:05
标题:
pyqt5中使用了QTableWidget赋值后没有显示内容的解决办法
QStringList strList;
strList.append("原来文本");
strList.append("改后文本");
// ui->tableWidget->setHorizontalHeaderLabels(strList);
QVector<QString> ss= mAxis->tickVectorLabels();
for(int i=0;i!=ss.length();++i)
{
QTableWidgetItem *theItem1=new QTableWidgetItem(ss[i]);
ui->tableWidget->setItem(i,0,theItem1);
QTableWidgetItem *theItem2=new QTableWidgetItem(ss[i]);
ui->tableWidget->setItem(i,1,theItem2);
}
复制代码
原因是表格初始化时没有设置行和列的数量,
方法一:
在qtdesigner中找到并设置初始化行数和列数
问题已解决, 添加:
ui->tableWidget->setColumnCount(strList.length());
ui->tableWidget->setRowCount(ss.length());
方法二:
在代码中直接根据数据行数和列数设置表格行数和列数。
def show_data_table_widget(self,print_file_name_and_path_list):
self.ui.tableWidget.setRowCount(len(print_file_name_and_path_list)) # 行数
self.ui.tableWidget.setColumnCount(len(print_file_name_and_path_list[0])) # 列数
self.ui.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) # 所有列自动拉伸,充满界面
self.ui.tableWidget.setSelectionMode(QAbstractItemView.SingleSelection) # 设置只能选中一行
self.ui.tableWidget.setEditTriggers(QTableView.NoEditTriggers) # 不可编辑
self.ui.tableWidget.setSelectionBehavior(QAbstractItemView.SelectRows); # 设置只有行选中
self.ui.tableWidget.setHorizontalHeaderLabels(['文件名', '文件路径']) # 横向标题排列,如果使用setVerticalHeaderLabels则是纵向排列标题
# items = [['JONES', 'Beijing', '23', '2300'], ['SMITH', 'SHAngHai', '23', '3000'], ['ZY', 'Tianjin', '23', '2000'],
# ['Smith', 'SJT', '22', '1030']]
items = print_file_name_and_path_list
for i in range(len(items)): # 注意上面列表中数字加单引号,否则下面不显示(或者下面str方法转化一下即可)
item = items[i]
for j in range(len(item)):
temp_item = QTableWidgetItem(str(items[i][j]))
self.ui.tableWidget.setItem(i, j, temp_item)
复制代码
欢迎光临 纳速健身 (https://nasue.com/)
Powered by Discuz! X3.4