Russian Qt Forum
Ноябрь 23, 2024, 06:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: QTreeWidgetItem ItemFlags::CanHaveChildren ?  (Прочитано 10991 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #15 : Февраль 26, 2014, 11:58 »

А псевдокод адаптации я писать не буду - и ежу ясно setText() и прочая.
Ежу все понятно - поэтому у него вместо мозгов иголки.
Код
C++ (Qt)
item->setText(<а здесь что?>, "some text");
Записан
Bepec
Гость
« Ответ #16 : Февраль 26, 2014, 13:43 »

А там идёт то, что подразумевается в вашей реализации. И только вы знаете что там Улыбающийся Мне вы показали только объявления, как я могу вам что-то сказать по вашей задаче? Веселый

Ладно, давайте как с первоклассником.

У вас будет наследник от QTreeWidget, имеющий интерфейс аналогичный со старым компонентом.

Название функций и их параметры остаются такими же для совместимости.

Содержимое функций переписывается со старого кода на новый код с использованием Qt и QTreeWidgetItem, при это сохраняя функционал старого компонента или же улучшая его.

Функционал старого компонента необходим для переноса его в новый компонент (читай - нужен старый исходник, чтобы по его аналогии и алгоритму работы воссоздать его же с использованием Qt).

Воссоздать и адаптировать старый код на новый можно только при наличии старого кода.

PS Я думаю вы достаточно разбираетесь в коде старого компонента, чтобы перенести функционал и убрать лишние детали.

PPS я даже готов вам наметать псевдокод перевода пары ваших функций при условии предоставления вами кода старых функций и алгоритма работы компонента в целом.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #17 : Февраль 26, 2014, 14:08 »

PPS я даже готов вам наметать псевдокод перевода пары ваших функций при условии предоставления вами кода старых функций и алгоритма работы компонента в целом.
Непонимающий Так я уже все Вам предоставил
Код
C++ (Qt)
class OldTreeItem {
public:
bool  IsEnabled( void ) const;  { return mEnabled; } // возвращает значение в колонке  ENABLED
void  SetEnabled( bool on );    { mEnabled = on; } // устанавливает значение в колонке  ENABLED
 
// так же для всех др колонок
};
Методы сохранить, старые члены данных - на Ваше усмотрение. Пример: mEnabled
Записан
Bepec
Гость
« Ответ #18 : Февраль 26, 2014, 14:48 »

Код:
enum {  FLAG_COLUMN_ENABLED}

 bool  IsEnabled( void ) const;  { return data(FLAG_COLUMN_ENABLED, Qt::UserRole).toBool(); } // возвращает значение в колонке  ENABLED
 void  SetEnabled( bool on );    { setData(FLAG_COLUMN_ENABLED, Qt::UserRole, on); } // устанавливает значение в колонке  ENABLED
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #19 : Февраль 26, 2014, 16:28 »

Код:
enum {  FLAG_COLUMN_ENABLED}

 bool  IsEnabled( void ) const;  { return data(FLAG_COLUMN_ENABLED, Qt::UserRole).toBool(); } // возвращает значение в колонке  ENABLED
 void  SetEnabled( bool on );    { setData(FLAG_COLUMN_ENABLED, Qt::UserRole, on); } // устанавливает значение в колонке  ENABLED
Так ведь флаг FLAG_COLUMN_ENABLED совсем не соответствует индексу колонки  Улыбающийся
Записан
Bepec
Гость
« Ответ #20 : Февраль 26, 2014, 17:26 »

Так ведь
Цитировать
PPS я даже готов вам наметать псевдокод перевода пары ваших функций при условии предоставления вами кода старых функций и алгоритма работы компонента в целом.

Вы мне дали код и никаких пояснений по алгоритму работы.
Код возвращает значение колонки enabled. Так что я сам из головы взял что колонка 0 = колонка Enabled.
Приводите весь алгоритм, тогда и будет вам код для вашего АЛГОРИТМА работы.

PS в моём случае соответствует индексу. Я его из головы взял, правда енум скопировал у вас Улыбающийся
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #21 : Февраль 26, 2014, 17:41 »

Вы мне дали код и никаких пояснений по алгоритму работы.
Код возвращает значение колонки enabled. Так что я сам из головы взял что колонка 0 = колонка Enabled.
Приводите весь алгоритм, тогда и будет вам код для вашего АЛГОРИТМА работы.
Так я его и привел
// флаги колонок
Код
C++ (Qt)
enum {
 FLAG_COLUMN_ENABLED,
 FLAG_COLUMN_LOCKED,
 FLAG_COLUMN_NUMBER,
 FLAG_COLUMN_TEXT,
 ...
};
 
Флаг показывает имеется ли такая колонка, индексом-то он не является

PS в моём случае соответствует индексу. Я его из головы взял, правда енум скопировал у вас Улыбающийся
Ах какая у Вас хорошая голова! Улыбающийся А что будет если колонки ENABLED нет (флаг выкл) ?
Записан
Bepec
Гость
« Ответ #22 : Февраль 26, 2014, 18:17 »

Колонка будет в любом случае. Просто в каком то случае она скрыта от пользователя.

Я вам уже говорил и повторять в третий раз не буду. Колонки будут всегда. QTreeWidgetItem имеет то же число колонок что и QTreeWidget. Удалять колонки нельзя, добавлять колонки нельзя. Они существовать будут всегда. Просто в одном случае они будут скрыты, в другом показаны.

Это вам не динамически выстраиваемое дерево, это QTreeWidgetItem с его достоинствами и недостатками.

PS если и это до вас не дойдёт, я больше попыток делать не буду Улыбающийся

PPS по вашему описанию я навскидку могу предложить три реализации, которые будут различаться в корне. Делать то надо так "как в старом".
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #23 : Февраль 27, 2014, 12:45 »

Колонка будет в любом случае. Просто в каком то случае она скрыта от пользователя.

Я вам уже говорил и повторять в третий раз не буду. Колонки будут всегда. QTreeWidgetItem имеет то же число колонок что и QTreeWidget. Удалять колонки нельзя, добавлять колонки нельзя. Они существовать будут всегда. Просто в одном случае они будут скрыты, в другом показаны.

Это вам не динамически выстраиваемое дерево, это QTreeWidgetItem с его достоинствами и недостатками.
То есть мне лучше создать все-все возможные колонки и потом спрятать те что не нужны? Потому что удалить/добавить - никак не выйдет. Правильно?

Записан
Bepec
Гость
« Ответ #24 : Февраль 27, 2014, 16:19 »

PPS по вашему описанию я навскидку могу предложить три реализации, которые будут различаться в корне. Делать то надо так "как в старом".
И эта входит в число трёх.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.191 секунд. Запросов: 22.