Russian Qt Forum

Qt => Model-View (MV) => Тема начата: pethead от Декабрь 04, 2010, 08:52



Название: (решено)Код примера SimpleTreeModel
Отправлено: pethead от Декабрь 04, 2010, 08:52
беру код из примера и пробую вставить в свою программу, в конструкторе главного окна QMainWindow, и не отображается заполнение дерева, появляется отдельное окно дерева, ок, но пустое.
а если тот же код вставить в main то тоже отдельное окно, ок, но заполненное. почему?
в трассировке кода чтение файла, и создание узлов есть в обеих вариантах.

Код:

        QFile file(":/default.txt");
   file.open(QIODevice::ReadOnly);
   TreeModel model(file.readAll());
   file.close();

   QTreeView view;
   view.setModel(&model);
   view.setWindowTitle(QObject::tr("Simple Tree Model"));
   view.show();


вот картинка. первое окно создано в конструкторе QMainWindow, второе в main.


Название: Re: Код примера SimpleTreeModel
Отправлено: BRE от Декабрь 04, 2010, 09:08
Потому, что model и/или view определяется на стеке и соответственно разрушается при выходе из конструктора.


Название: Re: Код примера SimpleTreeModel
Отправлено: pethead от Декабрь 04, 2010, 09:45
сорри, ступил.

*someoff: где почитать про применимость того или иного варианта создания экземпляра класса? суть знаю, а про практичность не совсем.
с ув. бывший дельфист.


Название: Re: Код примера SimpleTreeModel
Отправлено: BRE от Декабрь 04, 2010, 10:03
*someoff: где почитать про применимость того или иного варианта создания экземпляра класса? суть знаю, а про практичность не совсем.
с ув. бывший дельфист.

В любой книжке по C++