Qt QTreeWidge解决setItemWidget后,导致复选框失效

一、问题:

QTreeWidget某一项加上itemWidget后,导致复选框失效问题

二、解决方法

将要加上的widget控件加到该项的后续的列,即控件跟复选框不同一列

三、具体代码

QTreeWidget* treeW = new QTreeWidget;
treeW->setColumnCount(2); // 设置2列,这个要根据你要的列数来设置

QTreeWidgetItem* widItem = new QTreeWidgetItem(QStringList()<<"个数");
treeW->addTopLevelItem(widItem);
// 必须设置Qt::ItemIsUserCheckable属性
widItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable | 
				  Qt::ItemIsEditable | Qt::ItemIsUserCheckable);
// 第一列为复选框
widItem->setCheckState(0,Qt::Unchecked); 
// 第二列加入itemWidget,与复选框不同列,这样做就能解决问题
treeW->setItemWidget(widItem,1,new QDoubleSpinBox(treeW)); 

四、效果

Qt QTreeWidge解决setItemWidget后,导致复选框失效_第1张图片

对你有用就点个赞,以后需要用到就收藏⭐

你可能感兴趣的:(Qt,Qt)