我在我的QTableView(作品)中使用拖放。但是,我没有看到任何下降指标。我应该看到一条应该插入水滴的线,不是吗?至少在这里他们是这么说的。
我的 init 非常标准。
// see model for implementing logic of drag
this->viewport()->setAcceptDrops(allowDrop);
this->setDragEnabled(allowDrag);
this->setDropIndicatorShown(true);
this->m_model->allowDrop(allowDrop);
Run Code Online (Sandbox Code Playgroud)
我不知道为什么我看不到指标。样式表与视图一起使用,这可能是原因。但是,我已禁用样式表,但仍然看不到它。
该视图使用整行进行选择,不确定这是否会导致问题。所以任何提示表示赞赏。
- 编辑 -
根据下面的评论,尝试了所有选择模式:单、多或扩展,没有视觉效果。还尝试了单元格而不是行选择,同样没有改进。
-- 编辑 2 --
目前正在评估另一个样式代理示例,类似于下面的,最初引用here
- 有关的 -
QTreeView 绘制下拉指示器
如何在 QTableWidget 中突出显示鼠标悬停的整行:Qt5
https://forum.qt.io/topic/12794/mousehover-entire-row-selection-in-qtableview/7
https://stackoverflow。 com/a/23111484/356726
在 Qt 应用程序中使用样式时,我遇到了一个有趣的QStyle所有权问题。QStyle继承自QObject,它通常接受QObject* parent作为构造函数参数来管理其子级的生命周期。但是QStyle的构造函数没有这个构造函数参数。第一个问题 - 为什么会这样?
此外,当使用 为整个应用程序设置样式时QApplication::setStyle(QStyle * style),文档说应用程序对象拥有样式的所有权。所以写作(如在文档中)app->setStyle(new MyWonderStyle());应该是安全的,应用程序应该在不再使用时删除样式。我希望它这样做。
但是对于QWidget::setStyle(QStyle* style)文件说所有权没有转移。因此,在我看来widget->setStyle(new MyWonderStyle());,如果小部件的样式设置不止一次或删除小部件时,写入会导致内存泄漏。
所以我的问题 - 管理自定义样式的最佳实践是什么,尤其是 Qt 中的所有权?是否有一些标准方法或完全由开发人员来处理它?