Название: Занудный QTableWidgetItem Отправлено: Alexandr Az от Октябрь 31, 2010, 19:22 Есть TableWidget, содержащий соответствующие итемы. Итемы (QTableWidgetItem) хочется привязать к своим данным, т.е. чтобы ссылались на объект. Как для меня ни странно, не нашёл в описания класса соответствующего поля - указателя, который я мог бы туда пхать (привет Delphi, property Tag)
Варианты решения проблемы: 1. Тупо и быстро - наследуем QTableWidgetItem и суём туда что хотим. Единственное - придётся делать приведение типов. 2. Подход в стиле QT - QVariant, определяем UserType, всякие Q_DECLARE_METATYPE и т.д. Собственно вопрос: Как связать QVariant с отображением его в TableWidget? Если мы засунем туда (в QVariant), скажем число, оно отобразится. Если засунем туда QColor - он тоже отобразится (шестнадцатеричное значение цвета). Хочу заметить, что о QColor QVariant ничегошеньки не знает, в отличии от простых типов. Уточняю вопрос: Как это гребаный QVariant знает как преобразовать QColor в строку и подсунуть куда нужно? (исходники перерыл). Второй, риторически-философский вопрос. Почему так сложно это делать по правилам в QT, когда в лоб гораздо проще.... Название: Re: Занудный QTableWidgetItem Отправлено: BlackTass от Октябрь 31, 2010, 19:45 Есть еще один вариант, заюзать модель-вью и в индексах в internalPointer хранить указатель на нужный объект.
Про QVariant ничо не понял. Вообще вариант знает о колоре, просто для него нет спец-метода (так как QVariant входит в QtCore, а QColor это часть QtGui), но через шаблонный метод value() колор вполне возвращается Название: Re: Занудный QTableWidgetItem Отправлено: Alexandr Az от Октябрь 31, 2010, 21:10 Есть еще один вариант, заюзать модель-вью....... В данном случае, овчинка выделки не стоит. Да и неверно это с точки зрения похода. ...... но через шаблонный метод value() колор вполне возвращается А тут поподробнее можно? Название: Re: Занудный QTableWidgetItem Отправлено: kibsoft от Октябрь 31, 2010, 21:39 Цитировать В данном случае, овчинка выделки не стоит. Да и неверно это с точки зрения похода. Вообще тролли рекомендуют использовать именно Model/View вместо "удобных" вьюверов.. С MV производительность увеличится, да и гемора не будет как с QTableWidget..Название: Re: Занудный QTableWidgetItem Отправлено: Alexandr Az от Октябрь 31, 2010, 22:53 Цитировать Вообще тролли рекомендуют использовать именно Model/View вместо "удобных" вьюверов.. С MV производительность увеличится, да и гемора не будет как с QTableWidget.. Дело не в удобстве, а в прагматизме. Как видите, я здесь больше рассуждаю о самой библиотеке и подходах, чем о реальных реализациях. А если нету модели? Расскажу о задаче. Коннект к БД. Слева наименования коннектов, справа - пункты коннекта (хост, юзер нейм и так далее ). Невозможно сделать модель - класс QSettings не поддерживает все те фитчи, которые нужны в данной модели для GUI (к примеру, сопоставление параметров с их визуальным отображением). Да и вообще, задача не того уровня, чтобы ДЕЛАТЬ МОДЕЛЬ для окна коннекта. |