列表控件QListWidge主要是通过包含一系列的QListWidgeItem项来进行显示,换句话说,列表控件QListWidge是QListWidgeItem项的集合。其中,列表控件QListWidge包含QListWidgeItem项主要用到函数void QListWidget:: insertItem(int row, QListWidgetItem *item);
下面代码演示从数据库循环加Item和添加自定义Item。
query.first();
for (int i = 0; i < rec; ++i)
{
QListWidgetItem *configItem = new QListWidgetItem(ui->listWidgetMX);
configItem->setIcon(QIcon(":/image/add.png"));
configItem->setText(query.value(0).toString());
configItem->setTextAlignment(Qt::AlignLeft);
configItem->setToolTip(query.value(1).toString());
configItem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
ui->listWidgetMX->insertItem(i,configItem);
query.next();
}
QListWidgetItem *configItem = new QListWidgetItem();
configItem->setIcon(QIcon(":/image/add.png"));
configItem->setText("所有设备");
configItem->setTextAlignment(Qt::AlignLeft);
configItem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
ui->listWidgetMX->insertItem(rec,configItem);
//设置样式,直接在函数中设置
ui->listWidgetMX->setStyleSheet("QListWidget{border:1px solid gray; color:white; }"
"QListWidget::Item:hover{background:skyblue; }"
"QListWidget::item:selected{background:lightgray; color:red; }"
"QListWidget::item:selected:!active{border-width:0px; background:lightgreen; }"
);
//设置最后一行默认选中
QListWidgetItem *item = ui->listWidgetMX->item(ui->listWidgetMX->count()-1);
item->setSelected(true);
效果示例:
备注:实战示例,解疑答惑。
--不间端地思考,实时地批判你的工作!