Родитель передан конструктору QPushButton - PullRequest
2 голосов
/ 03 мая 2011

Я следил за этой веткой: Управление памятью в Qt?

QPushButton::QPushButton ( const QString & text, QWidget * parent = 0 )

Итак, в примере я увидел следующий способ создания объекта кнопки.Меня беспокоит второй параметр, «родитель», этот указатель был передан туда, означает ли это, что этот виджет является его собственным родителем?Я знаю, что упускаю очко, пожалуйста, укажите это.

button1 = new QPushButton("Button1", this);

Ответы [ 2 ]

7 голосов
/ 03 мая 2011

Будьте осторожны, this не относится к QPushButton.

Эта строка кода:

button1 = new QPushButton("Button1", this);

, вероятно, является частью класса QWidget, к которому относится this!

Это означает, что класс QWidget является владельцем QPushButton, который он отображает.

Это также означает, что при удалении экземпляра класса QWidget будут удалены все его дочерние элементы, что означает, что кнопка QPushButton button1 также будет удалена автоматически.

0 голосов
/ 03 мая 2011

Да, родитель, который вы здесь установили, является виджетом, которым вы пользуетесь, вы используете родительский параметр в элементах управления практически любой GUI Framework, чтобы знать, где находится элемент управления.

Увидимся

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...