Qt 的QTableWidget控件可以用来显示文本和图片
它本身提供了void QTableWidget::setItem(int row, int column, QTableWidgetItem *item)方法用于显示图片
例:
ui->tableWidget->setItem(0,1,new QTableWidgetItem(QIcon(":img/Warn.jpg"),""));
然而QTableWidget只提供了一个让文本居中的方法void QListWidgetItem::setTextAlignment(int alignment)
如:
ui->tableWidget->item(0, 0)->setTextAlignment(Qt::AlignHCenter);
这个方法只能让文字居中却不能让显赫和图片居中
见图
右侧的绿圆无法居中
这里使用了QTableWidget提供的void QTableWidget::setCellWidget(int row, int column, QWidget *widget)方法
具体代码如下:
QLabel *label = new QLabel();
label->setPixmap(QPixmap(":img/Warn.png"));
label->setAlignment(Qt::AlignHCenter);
ui->tableWidget->setCellWidget(0,1,label);
效果如图
成功实现了QTableWidget中的Item居中显示图片