zl程序教程

您现在的位置是:首页 >  工具

当前栏目

QT使用tableWidget显示双排列表 并且选中用红框圈出来

Qt列表 显示 选中 出来 并且 使用
2023-09-14 09:07:01 时间

这里采用tableWidget显示双排列表

双排列表代码

QTableWidgetItem* item[50];
 
	int Row;
	if (num%2 == 1)
	{
		Row = num/picColumn+1;
	}
	else
	{
		Row = num/picColumn;
	}
	
	int index;//表格坐标转换为0-n索引
 
	ui.tableWidgetPicList->setRowCount(Row);//行数
	ui.tableWidgetPicList->setColumnCount(picColumn);//列数
 
	ui.tableWidgetPicList->setIconSize(QSize(PicWidth,PicHeight));//设置图片大小
 
	ui.tableWidgetPicList->setEditTriggers(QAbstractItemView::NoEditTriggers);//不可编辑
 
	ui.tableWidgetPicList->setShowGrid(false);//显示表格线
 
	ui.tableWidgetPicList->setColumnWidth(0,PicWidth+10);//第一列宽度
	ui.tableWidgetPicList->setColumnWidth(1,PicHeight+10);//第二列宽度
 
 
	ui.tableWidgetPicList->verticalHeader()->setVisible(false);   //隐藏列表头
	ui.tableWidgetPicList->horizontalHeader()->setVisible(false); //隐藏行表头
	QTableWidgetItem *pNewItem = new QTableWidgetItem();
 
	for (int i=0;i<Row;i++)
	{
		for (int j=0;j<picColumn;j++)
		{
			
			index = picColumn*i+j;
			if (index != num)
			{
				ui.tableWidgetPicList->setRowHeight(i,PicHeight+10);//设置第i行高度
 
				item[index] = new QTableWidgetItem();
				item[index]->setIcon(QIcon(path[index]));
				ui.tableWidgetPicList->setItem(i,j,item[index]);
			}
		}
	}

设置item选中的样式

setStyleSheet("QTableWidget::item:selected { background-image:url(background_red_110_110.png) }");//更改QTableWidget选中样式

双击选中后改变样式

ui.tableWidgetPicList->item(item->row(),item->column())->setBackground(QBrush(QPixmap("background_red_110_110.png")));

程序运行图:
在这里插入图片描述