2012-11-05 68 views
0

我用一个QStackedWidget一个QListWidget用户偏好的配置,现在QTreeView中的非可点击项目?

我想补充一个“非点击”项目,而不是编辑触发器,我的意思是像一个指示标签(该QLabel加上QLine部件在下面),但不允许用户点击它。

--------------------------- 
| The Main Category Label | 
--------------------------- 
| Clickable QStandardItem | 
| Clickable QStandardItem | 
| Clickable QStandardItem | 
--------------------------- 
| The Secondary Category | 
--------------------------- 
| Clickable QStandardItem | 
| Clickable QStandardItem | 
| Clickable QStandardItem | 
--------------------------- 

这可能吗?我只看到一个addItem函数,这似乎并不适合这种情况。

回答

3

如果你使用QListWidget就应该添加QListWidgetItem只有Qt::ItemIsEnabled标志

QListWidget * wgt = new QListWidget; 
QListWidgetItem * selectableItem = new QListWidgetItem("Selectable"); 
wgt->addItem(selectableItem); 
QListWidgetItem * notSelectable = new QListWidgetItem("Not selectable"); 
notSelectable->setFlags(Qt::ItemIsEnabled); 
wgt->addItem(notSelectable); 
wgt->show(); 

要在项目插件设置:

QListWidget * wgt = new QListWidget; 
QListWidgetItem * selectableItem = new QListWidgetItem("Selectable"); 
wgt->addItem(selectableItem); 
wgt->setItemWidget(new QLineEdit()); 
QListWidgetItem * notSelectable = new QListWidgetItem("Not selectable"); 
notSelectable->setFlags(Qt::ItemIsEnabled); 
wgt->addItem(notSelectable); 
wgt->show(); 
+0

这是很好的,但对于“QLine”窗口小部件?我需要使用Qt的委托模块还是什么? – daisy

+0

@ warl0ck你可以使用setItemWidget - 有时候阅读文档;) –