我正在使用val lines = sc.textFile("followers.txt").map(s => {
val substrings = s.split(" ")
(substrings(0), substrings(1))
})
在QListWidgetItem
中添加项目。
在某些情况下,我希望我QListWidget
的某些行变为不可选择。 (我的意思是我希望某些QListWidget
无法选择)
有没有办法做到这一点?
PS:我试过了
QListWidgetItem
但他们不会禁用项目的选择。
编辑:
listWidgetItem->setFlags(Qt::NoItemFlags)
listWidgetItem->setSelected(false);
}
答案 0 :(得分:1)
您可以尝试以下操作:
1)覆盖点击/选择事件(抱歉,我不记得确切的名字。 这样做你可以在项目上有某种标志/ bool值,如果设置为不可选择你只是返回。
2)而不是覆盖你只需连接信号并执行上述检查,如果你不想选择那个项目,你可以在之后取消选择它。
一些解决方法,但我不知道是否有内置方法可以这样做。 检查文档我没有在项目本身上看到禁用方法。
如果你走在列表视图的道路上,你应该对它有更多的控制,也可以在显示器上,所以你可以将它显示为灰色等。虽然视图有点工作。
微米。
答案 1 :(得分:1)
只需从每个项目中移除Qt::ItemIsSelectable
flag:
item->setFlags(item->flags() & ~Qt::ItemIsSelectable);
如果您要删除与该项目的所有互动,请删除Qt::ItemIsEnabled
。
E.g。
#include <QtWidgets>
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QListWidget widget;
for (int i = 0; i < 100; ++i) {
QListWidgetItem *item = new QListWidgetItem(QStringLiteral("Item %1").arg(i));
if (i % 2 == 0) // disable one every two
item->setFlags(item->flags() & ~Qt::ItemIsSelectable);
widget.addItem(item);
}
widget.show();
return app.exec();
}