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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Автоматизировать таблицу  (Прочитано 2687 раз)
xTr1m
Гость
« : Март 04, 2012, 05:30 »

Здравствуйте, хотел поросить совета в организации кода. Хочу сделать следующее:

есть таблица (например, QTableWidget), есть классы разных элементов (инструмент, машина, работник и т.п.). Хочу отнаследоваться от QTableWidget и делать примерно так

Код:
// так выглядит определение
QTableColumn* QTableWidgetEx::addStringColumn(const QString &title, const QString &propertyName);
bool QTableWidgetEx::addItem(QObject *item);

// добавляю колонки
m_table->addStringColumn(tr("Identification"), "id");
m_table->addStringColumn(tr("Name"), "name");
m_table->addStringColumn(tr("Description"), "description");

// добавляю объект
QCar *newCar = new QCar();
newCar->setId(tr("SX4"));
newCar->setName(tr("Suzuki"));
newCar->setDescription(tr("Simple 4x4"));
m_table->addItem(newCar);

то есть хочется определить колонку, указать свойство, за которое она будет отвечать, а потом просто сказать "добавь элемент". а таблица уже будет сама "дергать" свойства объекта. смущает два момента:

1) Нужно будет дублировать название свойства (один раз в классе объекта и каждый раз когда я буду создавать таблицу). То есть, если название свойства поменяется, то нужно будет менять везде.
2) Не будет ли такой вариант с "дерганием" свойств для каждого значения в таблице медленным (при количестве элементов > 10000).

Может я придумываю влосипед? Спасибо.
Записан
mutineer
Гость
« Ответ #1 : Март 04, 2012, 10:58 »

ИМХО лучше использовать QTableView и свою модель
Записан
xTr1m
Гость
« Ответ #2 : Март 04, 2012, 16:46 »

А чем лучше? Нужно будет для каждого типа объекта создавать класс, отнаследованный от qabstractitemview? Просто не особо понял разницу.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Март 04, 2012, 17:31 »

QTableView - это визуальная таблица, элементами таблицы ты будешь управлять в подклассе QAbstractTableModel
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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