• 12379阅读
  • 19回复

演示TreeView,TableView和Delegate的使用 [复制链接]

上一主题 下一主题
离线lemonzll
 

只看楼主 倒序阅读 楼主  发表于: 2016-12-09
在基础编程区看见有人问TreeView之类的使用,有时间就写了个示例程序,大概演示了下TreeView,TableView还有Delegate的使用。以前刚学的时候也折腾了挺久。有兴趣的可以看下。程序用Qt5写的,我这边的编译环境是MSVC2015,其实就用了C++11,稍微改下可以用其他编译器编译的。
附件: TreeTest.zip (79 K) 下载次数:843
离线zhuifengwy

只看该作者 1楼 发表于: 2016-12-20
学习学习
离线徐平789699

只看该作者 2楼 发表于: 2017-01-10
今天把你的代码一行行都看了,对模型视图的学习很有帮助,还学到了些新的编写代码方式,不知道是不是有什么思想模式在里面呢?
离线徐平789699

只看该作者 3楼 发表于: 2017-01-10
我就懂c++语法什么的,也没学过什么c++编程模式,程序的安全性和稳定性都不太好,不知道你能不能给些建议
离线徐平789699

只看该作者 4楼 发表于: 2017-01-10
这里的    [this]{...}()    不太明白,我没看见过这种写法,能不能帮我解释下呢?
离线lemonzll

只看该作者 5楼 发表于: 2017-01-12
回 徐平789699 的帖子
徐平789699:这里的    [this]{...}()    不太明白,我没看见过这种写法,能不能帮我解释下呢? (2017-01-10 21:39)

[this]{...}()这个是C++11的lambda表达式语法,你可以查下。最后加的()相当于调用了这个匿名的lamba表示式
离线lemonzll

只看该作者 6楼 发表于: 2017-01-12
回 徐平789699 的帖子
徐平789699:我就懂c++语法什么的,也没学过什么c++编程模式,程序的安全性和稳定性都不太好,不知道你能不能给些建议
 (2017-01-10 21:26) 

这个也就用了默认的MVC的思想,其他的也都没用。一般程序稳定性不好多是内存分配和释放的问题,你就写程序的时候注意下基本的写法,比如QObject子类需要设置parent,多用QPointer类,多判断下是否是空指针,QObject子类删除的时候最好用deleteLater()函数
离线徐平789699

只看该作者 7楼 发表于: 2017-01-12
回 lemonzll 的帖子
lemonzll:这个也就用了默认的MVC的思想,其他的也都没用。一般程序稳定性不好多是内存分配和释放的问题,你就写程序的时候注意下基本的写法,比如QObject子类需要设置parent,多用QPointer类,多判断下是否是空指针,QObject子类删除的时候最好用deleteLater()函数 (2017-01-12 09:26) 

谢谢啊,学到了
离线黑佐

只看该作者 8楼 发表于: 2017-01-16
离线disongshu

只看该作者 9楼 发表于: 2017-01-16
    
离线flycn

只看该作者 10楼 发表于: 2017-01-22
楼主这种用法还是有内存泄露

class PathEditor::PathEditorPrivate
{
public:
    QLineEdit* edit = Q_NULLPTR;
    QPushButton* btn = Q_NULLPTR;
};

const QScopedPointer<PathEditorPrivate> d(new PathEditorPrivate);

QScopedPointer只会删除d,不会对内部的edit调用delete

见:https://github.com/LeetcodeCN/leetcodecn.github.io/blob/master/src/scopedpointer/myscopedpointer.h
离线lemonzll

只看该作者 11楼 发表于: 2017-01-22
回 flycn 的帖子
flycn:楼主这种用法还是有内存泄露
class PathEditor::PathEditorPrivate
{
public:
....... (2017-01-22 09:59) 

d是靠QScopedPointer删除的,edit是添加到PathEditor的layout里面了,就设置有parent,当PathEditor删除的时候会先删除所有的children,这时edit就删除了,没有内存泄漏。你可以关联下edit的destroyed的signal试下,会触发这个signal,也就是被删除了
离线clickto

只看该作者 12楼 发表于: 2017-10-24
感谢楼主!!1
离线alone_work

只看该作者 13楼 发表于: 2018-01-24
离线alone_work

只看该作者 14楼 发表于: 2018-01-24
楼主这代码写的太牛逼了!好多都看不懂啊!惭愧啊
离线john123456

只看该作者 15楼 发表于: 2019-07-24
不错不错,值得学习
离线程序猿凯

只看该作者 16楼 发表于: 2020-11-09
是不是大神都喜欢用auto类型,这个类型可以用于所有的类型?
离线f12x45q56

只看该作者 17楼 发表于: 2020-11-25
感谢楼主的分享 谢谢
离线delegate

只看该作者 18楼 发表于: 2020-12-18
离线塞车王

只看该作者 19楼 发表于: 2022-05-25
你好,请问以下自己写了一个listView的item条目展示,每个条目中都有一个checkBox,在第一页选中一个checkBox,后面几页都会被选中,需求是只选中一个页面的就行,不想关联。请问有什么办法吗
快速回复
限100 字节
 
上一个 下一个