相关疑难解决方法(0)

为什么我在 QTableView 中看不到放置指示器?

我在我的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

c++ qt qtableview qt5.6

6
推荐指数
1
解决办法
1417
查看次数

QStyle 所有权

在 Qt 应用程序中使用样式时,我遇到了一个有趣的QStyle所有权问题。QStyle继承自QObject,它通常接受QObject* parent作为构造函数参数来管理其子级的生命周期。但是QStyle的构造函数没有这个构造函数参数。第一个问题 - 为什么会这样?

此外,当使用 为整个应用程序设置样式时QApplication::setStyle(QStyle * style),文档说应用程序对象拥有样式的所有权。所以写作(如在文档中)app->setStyle(new MyWonderStyle());应该是安全的,应用程序应该在不再使用时删除样式。我希望它这样做。

但是对于QWidget::setStyle(QStyle* style)文件说所有权没有转移。因此,在我看来widget->setStyle(new MyWonderStyle());,如果小部件的样式设置不止一次或删除小部件时,写入会导致内存泄漏。

所以我的问题 - 管理自定义样式的最佳实践是什么,尤其是 Qt 中的所有权?是否有一些标准方法或完全由开发人员来处理它?

c++ qt

3
推荐指数
1
解决办法
439
查看次数

标签 统计

c++ ×2

qt ×2

qt5.6 ×1

qtableview ×1