crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> Интересует мнение по поводу кода, *не знал куда поместить
Litkevich Yuriy
  опции профиля:
сообщение 19.3.2011, 19:03
Сообщение #11


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(RazrFalcon @ 19.3.2011, 16:24) *
По моему нет
А в чем проблема? Вроде работает.
код конструктора должен выглядеть так:
WallWindow::WallWindow() : QDialog(/* аргументы */)
{
...
}
Прежде чем будет инициализирован объект твоего класса, сначала вызывается конструктор базового класса (т.к. ему могут требоваться некие настройки). Если ты явно не указываешь какой именно конструктор базового класса вызывать, то будет вызван конструктор по умолчанию.
Взгляни на обычный наследник QWidget:
Widget::Widget(QWidget *parent) : QWidget(parent)
{
...
}
здесь мы в конструктор базового класса (QWidget) передаём указатель на QWidget, который является аргументом нашего конструктора. Если же мы так не будем делать, или вовсе не станем явно вызывать конструктор базового класса, то вызовется конструктор по умолчанию.
Когда конструируется QWidget без указания родителя, то такой виджет - окно верхнего уровня. А значит и наш виджет станет окном верхнего уровня.
вот пример:

// ПОЛОЖИМ, ЧТО ТАК УСТРОЕН НАШ КОНСТРУКТОР
Widget::Widget(QWidget *parent)
{
...
}

// А ВОТ ТАК СОЗДАЁТСЯ ЕГО ОБЪЕКТ ГДЕ-ТО В КОДЕ

...
Widget *w = new Widget(this); // где this - экземпляр QMainWindow
не взирая на то, что мы создали w с указанием родителя, всё-равно w будет окном верхнего уровня. Т.к. в конструктор базового класса родитель не попадает.


у тебя пока всё работает, т.к. ты тестируешь свой класс изолированно, т.е. не помещая его в реальную программу.

Обычно диалоги центрируют по родителю, это достигается тем, что в конструктор QDialog передаётся указатель на родителя. В твоём классе этого не предусмотрено.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V  < 1 2
Ответить в данную темуНачать новую тему
Теги
Нет тегов для показа


8 чел. читают эту тему (гостей: 8, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.12.2024, 18:11