小编Hem*_*mar的帖子

重新定位以及通过rebasing推动提交意味着什么

人们常说,你不应该重新提出你已经推过的提交.这可能意味着什么?

git rebase

105
推荐指数
4
解决办法
7万
查看次数

QSortFilterProxyModel和延迟填充的树视图

我通过继承QAbstractItemModel实现了一个延迟填充的树视图.实现看起来像:

https://gist.github.com/gnufi​​ed/db9c4d805e2bb24d8c23

(我没有粘贴代码内联,以免混淆消息)

它基本上是存储在表中的分层数据的树表示.现在,我希望用户能够根据列对行进行排序.列是"计数"或"引用计数".这些值基本上是整数.

实现自己的工作,直到我抛出QSortFilterProxyModel,我开始在视图中获得大量空行.难的问题是,只有当我有很多行(大概数千个)时才会发生这种情况.

实现排序代理的代码是:

rootItem = RBKit::SqlConnectionPool::getInstance()->rootOfSnapshot(snapShotVersion);
model = new RBKit::HeapDataModel(rootItem, this);
proxyModel = new SortObjectProxyModel(this);
proxyModel->setSourceModel(model);
ui->treeView->setModel(proxyModel);
ui->treeView->setSortingEnabled(true);
Run Code Online (Sandbox Code Playgroud)

我有子类QSortFilterProxyModel类,子类实现非常简单:

https://gist.github.com/gnufi​​ed/115f1a4fae3538534511

文件确实说 -

"对于具有更复杂行为的源模型,可能需要覆盖此简单代理机制;例如,如果源模型提供自定义hasChildren()实现,则还应在代理模型中提供一个."

但除此之外,我不确定 - 我错过了什么.

c++ qt

5
推荐指数
1
解决办法
1407
查看次数

为Iterator :: find提供闭包时的值和引用

我在学习Rust方面还有很长的路要走,但我发现使用值和引用的方式不一致.这可能源于我对语言的无知.

例如,这有效:

let x = (1..100).find(|a| a % 2 == 0);
Run Code Online (Sandbox Code Playgroud)

let x = (1..100).find(|a| a > 50);事实并非如此.我不确定 - 为什么呢?

使用let x = (1..100).find(|&a| a > 50);修复错误,但后来我认为使用&a就像是要求从范围引用元素,因此后续应该工作,但它不会:

let x = (1..100).find(|&a| *a > 50);
Run Code Online (Sandbox Code Playgroud)

再也不知道为什么!

rust

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

标签 统计

c++ ×1

git ×1

qt ×1

rebase ×1

rust ×1