这是MainWindow我调用的类,并使用该函数show()使其对用户可见.
class MainWindow : public QMainWindow
{
Q_OBJECT
QWidget *centralWidget;
QGridLayout* gridLayout;
QGridLayout* infoBoxLayout;
QHBoxLayout* buttonGroup;
QHBoxLayout* subCategoryLayout;
//... more widgets
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
void setupUi();
void setupConnections();
private slots:
void add();
void edit();
void remove();
void find();
void clearAll();
void screenshotDesktop();
void screenshotApp();
void currentSubCategoryChanged( const QString& );
void curretCategoryChanged( const int );
void keyPressEvent( QKeyEvent * );
};
Run Code Online (Sandbox Code Playgroud)
我为每个小部件(宏之后的那些指针Q_OBJECT)创建了一个新的对象new.但是,我没有在程序中的任何地方删除它们.这会导致Qt内存泄漏吗?或者Qt中的某些东西在销毁类时会自动删除它们吗?
The*_*ght 12
如果窗口小部件具有父集,则Qt将处理删除窗口小部件.对于MainWindow,当你关闭它时,MainWindow及其子节点将被清理,所以将父节点传递给小部件的构造函数: -
QHBoxLayout* buttonGroup = new QHBoxLayout(this); // where this is the parent (MainWindow)
Run Code Online (Sandbox Code Playgroud)
如果你创建一个像这样的小部件: -
QHBoxLayout* buttonGroup = new QHBoxLayout;
Run Code Online (Sandbox Code Playgroud)
并没有通过父母,那么它将不会被清理,你将不得不自己处理.
| 归档时间: |
|
| 查看次数: |
3586 次 |
| 最近记录: |