QListWidget添加復(fù)選框冠场。
QListWidget設(shè)置Checkbox。
QListWidget項(xiàng)設(shè)置勾選框挫望。
效果
image.png
QListWidget
QListWidget為Qt列表展示控件柏蘑,每一項(xiàng)以文本展示,并可設(shè)置Icon空镜。
QListWidgetItem
QListWidgetItem代表QListWidget中的每一行浩淘,可以為其添加復(fù)選框捌朴。
通過(guò)setFlags()
接口,為QListWidgetItem添加標(biāo)志位Qt::ItemIsUserCheckable
张抄,使其支持復(fù)選砂蔽。
注意:設(shè)置復(fù)選的Item還需要給出初始狀態(tài)setCheckState()
,指出Item是否勾選署惯,否則復(fù)選框可能不會(huì)顯示左驾。
- 示例代碼:
QListWidget *listWgt = new QListWidget;
QListWidgetItem* item = new QListWidgetItem("item1", listWgt);
item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
item->setCheckState(Qt::Unchecked);
listWgt->addItem(item);
復(fù)選狀態(tài)監(jiān)聽(tīng)
連接QListWidget的itemChanged()
信號(hào),Item的狀態(tài)或數(shù)據(jù)發(fā)出改變時(shí)极谊,將發(fā)出該信號(hào)诡右。
//連接信號(hào)
connect(listWgt, &QListWidget::itemChanged, this, &MyWgt::slotItemChanged);
//省略代碼
......
//槽函數(shù)
void MyWgt::slotItemChanged(QListWidgetItem* item)
{
if(item)
{
Qt::CheckState state = item->checkState();
qDebug() << item->text() << state;
}
}