在Qt编程中,有哪些实用技巧可以分享?

2026-05-22 11:358阅读0评论SEO资源
  • 内容介绍
  • 相关推荐

本文共计1024个文字,预计阅读时间需要5分钟。

在Qt编程中,有哪些实用技巧可以分享?

在继承QObject的类中,存在一个父对象的概念(并非指父类和子类的关系),创建一个类(必须继承自QObject),该类就可以使用setParent()等函数(或者说是实例化对象时,将该对象作为参数传递给QObject)。


是否继承QObject

qt的对象系统中,有一个父对象的概念(不是指父类子类),创建一个类(必须继承自QObject),这个类就可以用setParent(xx)等函数(或者说实例化该对象的时候把QObject(parent)这样也是同样的道理),也就是给这个对象设置要给父对象了。


指定父对象的用途:父对象析构delete删除时,会把所有的子对象一起删除了,这样子对象的删除操作不用我们手动去delete了。如果没有指定该对象的父对象,那么我们得自己在创建这个对象的地方,注意看它哪里不需要了,自己手动delete它,但是这个往往很难把握,因此会造成内存泄漏。

比如mainwindow类中包含了很多成员对象(都是通过new方式搞出来的),但是他们都设置了mainwindow作为他们的父对象,那么mainwindow的析构函数中,就不需要delete这些对象了,因为mainwindow被释放的时候,会自动delete掉这些子对象,这就是最大的好处。否则需要我们再mainwindow的析构函数中逐个delete它们。

阅读全文

本文共计1024个文字,预计阅读时间需要5分钟。

在Qt编程中,有哪些实用技巧可以分享?

在继承QObject的类中,存在一个父对象的概念(并非指父类和子类的关系),创建一个类(必须继承自QObject),该类就可以使用setParent()等函数(或者说是实例化对象时,将该对象作为参数传递给QObject)。


是否继承QObject

qt的对象系统中,有一个父对象的概念(不是指父类子类),创建一个类(必须继承自QObject),这个类就可以用setParent(xx)等函数(或者说实例化该对象的时候把QObject(parent)这样也是同样的道理),也就是给这个对象设置要给父对象了。


指定父对象的用途:父对象析构delete删除时,会把所有的子对象一起删除了,这样子对象的删除操作不用我们手动去delete了。如果没有指定该对象的父对象,那么我们得自己在创建这个对象的地方,注意看它哪里不需要了,自己手动delete它,但是这个往往很难把握,因此会造成内存泄漏。

比如mainwindow类中包含了很多成员对象(都是通过new方式搞出来的),但是他们都设置了mainwindow作为他们的父对象,那么mainwindow的析构函数中,就不需要delete这些对象了,因为mainwindow被释放的时候,会自动delete掉这些子对象,这就是最大的好处。否则需要我们再mainwindow的析构函数中逐个delete它们。

阅读全文