有些时候表格需要一些图片或者图标。
我知道有两种方法,第一种是图标方法,第二种是lable加载图片
首先构造函数添加需要的参数
ui->tableWidget->setColumnCount(9); //设置列数
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); //自适应宽度
ui->tableWidget->verticalHeader()->setDefaultSectionSize(40); //设置行高
ui->tableWidget->setFrameShape(QFrame::NoFrame); //设置无边框
ui->tableWidget->setShowGrid(false); //设置不显示格子线
ui->tableWidget->setGridStyle(Qt::SolidLine);
ui->tableWidget->setSortingEnabled(true); //排序可见的
ui->tableWidget->setCornerButtonEnabled(true);
ui->tableWidget->verticalHeader()->setVisible(false); //设置垂直头不可见
ui->tableWidget->setSelectionMode(QAbstractItemView::ExtendedSelection); //可多选(Ctrl、Shift、 Ctrl+A都可以)
ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); //设置选择行为时每次选择一行
ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); //设置不可编辑
ui->tableWidget->horizontalHeader()->setFixedHeight(45); //设置表头的高度
图标法:
图标法,图标是不可以居中的只能在左侧
代码如下:
QTableWidgetItem *btItem = new QTableWidgetItem(); //靶体
btItem->setTextAlignment(Qt::AlignCenter); //文字居中
btItem->setIcon(QIcon(":/image/蓝旗.png"));
btItem->setText("红旗飘飘");
ui->tableWidget->setItem(0,5,btItem);
lable加载图片的方法:
图形如下:
代码如下:
QLabel *l1 = new QLabel(); //创建lable
l1->setPixmap(QPixmap(":/image/蓝旗.png")); //加载图片
l1->setAlignment(Qt::AlignHCenter); //设置居中
ui->tableWidget->setCellWidget(0,5,l1); //显示