qt的qlistwidget显示两列数据,c++
时间: 2023-11-30 21:02:19 浏览: 69
要在`QListWidget`中显示两列数据,你可以使用`QListWidgetItem`的子类并在其构造函数中创建两个`QTableWidgetItem`,然后将它们添加到`QListWidget`中。以下是一个示例代码:
```cpp
class MyListItem : public QListWidgetItem
{
public:
MyListItem(QString text1, QString text2, QListWidget *parent = nullptr) : QListWidgetItem(parent)
{
QTableWidgetItem *item1 = new QTableWidgetItem(text1);
QTableWidgetItem *item2 = new QTableWidgetItem(text2);
QListWidgetItem::setSizeHint(item1->sizeHint() + item2->sizeHint()); //设置item大小
QListWidgetItem::setTextAlignment(Qt::AlignLeft);
QListWidgetItem::setFont(QFont("Microsoft YaHei", 10));
QListWidgetItem::setBackground(QBrush(QColor(255, 255, 255)));
setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
QListWidgetItem::setData(Qt::UserRole, QVariant(text1)); //存储数据,用于后面的操作
QListWidgetItem::setData(Qt::UserRole + 1, QVariant(text2));
QListWidgetItem::setTextAlignment(Qt::AlignHCenter);
QListWidgetItem::setText(text1);
QListWidgetItem::setIcon(QIcon(":/image/image.png"));
QListWidgetItem::setFont(QFont("Microsoft YaHei", 10));
QListWidgetItem::setForeground(QBrush(QColor(255, 0, 0)));
QListWidgetItem::setBackground(QBrush(QColor(200, 200, 200)));
QListWidgetItem::setSizeHint(QSize(item1->sizeHint().width() + item2->sizeHint().width() + 20, item1->sizeHint().height()));
QListWidgetItem::setSizeHint(QListWidgetItem::sizeHint() + QSize(0, 10));
QListWidgetItem::setFont(QFont("Microsoft YaHei", 10));
QListWidgetItem::setTextAlignment(Qt::AlignHCenter);
QListWidgetItem::setText(text2);
}
};
```
在构造函数中,我们创建了两个`QTableWidgetItem`,并将它们添加到`QListWidgetItem`中。我们还设置了一些属性,例如文本对齐方式,字体,颜色和背景。我们还存储了两个文本数据,用于后续操作。在最后,我们将两个`QTableWidgetItem`添加到`QListWidgetItem`中,并设置了`QListWidgetItem`的大小。
要将`MyListItem`添加到`QListWidget`中,你可以使用以下代码:
```cpp
QListWidget *listWidget = new QListWidget(this);
listWidget->setFlow(QListWidget::LeftToRight);
listWidget->setViewMode(QListWidget::IconMode);
listWidget->setIconSize(QSize(50, 50));
listWidget->setResizeMode(QListWidget::Adjust);
listWidget->setGridSize(QSize(120, 60));
listWidget->setUniformItemSizes(true);
MyListItem *item1 = new MyListItem("Text1", "Text2", listWidget);
listWidget->addItem(item1);
```
在这个示例中,我们创建了一个`QListWidget`,并设置了一些属性,例如视图模式,图标大小,调整模式和网格大小。然后,我们创建了一个`MyListItem`,并将其添加到`QListWidget`中。
当然,你可以根据你的需求调整`MyListItem`的构造函数以及`QListWidget`的属性。
阅读全文