Russian Qt Forum
Ноябрь 24, 2024, 02:21
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Занудный QTableWidgetItem
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Занудный QTableWidgetItem (Прочитано 3744 раз)
Alexandr Az
Гость
Занудный QTableWidgetItem
«
:
Октябрь 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, когда в лоб гораздо проще....
«
Последнее редактирование: Октябрь 31, 2010, 19:42 от Alexandr Az
»
Записан
BlackTass
Гость
Re: Занудный QTableWidgetItem
«
Ответ #1 :
Октябрь 31, 2010, 19:45 »
Есть еще один вариант, заюзать модель-вью и в индексах в internalPointer хранить указатель на нужный объект.
Про QVariant ничо не понял. Вообще вариант знает о колоре, просто для него нет спец-метода (так как QVariant входит в QtCore, а QColor это часть QtGui), но через шаблонный метод value() колор вполне возвращается
Записан
Alexandr Az
Гость
Re: Занудный QTableWidgetItem
«
Ответ #2 :
Октябрь 31, 2010, 21:10 »
Цитата: BlackTass от Октябрь 31, 2010, 19:45
Есть еще один вариант, заюзать модель-вью.......
В данном случае, овчинка выделки не стоит. Да и неверно это с точки зрения похода.
Цитата: BlackTass от Октябрь 31, 2010, 19:45
...... но через шаблонный метод value() колор вполне возвращается
А тут поподробнее можно?
Записан
kibsoft
Хакер
Offline
Сообщений: 625
Re: Занудный QTableWidgetItem
«
Ответ #3 :
Октябрь 31, 2010, 21:39 »
Цитировать
В данном случае, овчинка выделки не стоит. Да и неверно это с точки зрения похода.
Вообще тролли рекомендуют использовать именно Model/View вместо "удобных" вьюверов.. С MV производительность увеличится, да и гемора не будет как с QTableWidget..
Записан
http://kibsoft.ru
- Download the Qt Media Encoding Library here
The apps that were written using QtMEL:
http://srecorder.com
- Screen recording software
Alexandr Az
Гость
Re: Занудный QTableWidgetItem
«
Ответ #4 :
Октябрь 31, 2010, 22:53 »
Цитировать
Вообще тролли рекомендуют использовать именно Model/View вместо "удобных" вьюверов.. С MV производительность увеличится, да и гемора не будет как с QTableWidget..
Дело не в удобстве, а в прагматизме. Как видите, я здесь больше рассуждаю о самой библиотеке и подходах, чем о реальных реализациях. А если нету модели? Расскажу о задаче. Коннект к БД. Слева наименования коннектов, справа - пункты коннекта (хост, юзер нейм и так далее ). Невозможно сделать модель - класс QSettings не поддерживает все те фитчи, которые нужны в данной модели для GUI (к примеру, сопоставление параметров с их визуальным отображением). Да и вообще, задача не того уровня, чтобы ДЕЛАТЬ МОДЕЛЬ для окна коннекта.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...