Qt qlistWidget item

问题一:我使用了listwidget的对齐函数后图片和文字是一上一下没问题,但是图片位置是靠在顶上,我需要图片和文字都在中间
问题二:我需要有点击变换背景颜色功能
问题三:item分割线需要只有中间一段不要拉通

img

如图。

问题一:

QListWidgetItem *item = new QListWidgetItem();
item->setTextAlignment(Qt::AlignCenter); // 设置文字居中对齐
item->setData(Qt::DecorationRole, QPixmap("path/to/image.png")); // 设置图片

QListWidget *listWidget = new QListWidget();
listWidget->addItem(item);

问题二:

// 在构造函数或初始化方法中连接信号和槽
connect(listWidget, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(onItemClicked(QListWidgetItem*)));

// 槽函数实现
void YourClass::onItemClicked(QListWidgetItem *item)
{
    // 修改选中的 item 的背景颜色
    item->setBackground(QColor(255, 0, 0)); // 示例设置为红色背景
}

问题三:

listWidget->setStyleSheet("QListWidget::item { border-bottom: 1px solid black; }");

这个建议你自己写一个自定义控件,使用qpushbutton作为基类,然后qpubutton里面使用2个qlabel,对2个qlabel进行上下布局。