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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Представление данных в виде таблицы  (Прочитано 4288 раз)
mindv0rtex
Гость
« : Декабрь 10, 2014, 06:08 »

Добрый день! Я недавно начал изучать Qt в свободное от работы время, коего немного. Поэтому прошу помощи касательно того, что из функционала библиотеки мне необходимо освоить, чтобы написать следующую простенькую для экспертов программу:

Исходные данные представляют из себя массив пар из даты и числа с плавающей точкой. Программа должна изобразить их в виде таблицы с тремя колонками, в первой перечисляются даты, затем числа, затем некое осредненное по времени значение. Необходимо иметь возможность загружать/сохранять эти данные из/в XML (с этим я уже разобрался), добавлять новый ряд в таблицу, редактировать и удалять существующие ряды. Добавление происходит при нажатии на кнопку, которая создаст пустой ряд внизу таблицы и поместит фокус в первую колонку. При этом дату можно вводить только в определенном формате (дд/мм/гггг), а число можно ввести только, если уже есть дата для него. Опционально в ячейке с датой справа должна быть иконка, при нажатии которой выскакивает календарик для выбора даты. Редактировать можно только первые две колонки, последняя должна быть read-only. Удаление выделенного ряда тоже по нажатию кнопки.

Вроде весь функционал описал... Буду признателен за любые подсказки или ссылки о том, какие средства Qt мне необходимы, чтобы его реализовать...
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Декабрь 10, 2014, 08:05 »

QAbstractItemModel + QTableView. С Кьютом поставляются примеры, там все достаточно понятно.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #2 : Декабрь 10, 2014, 08:15 »

QAbstractItemModel + QTableView. С Кьютом поставляются примеры, там все достаточно понятно.
Для новичка я бы всё таки посоветовал QStandardItemModel вместо QAbstractItemModel.
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Декабрь 10, 2014, 08:18 »

QAbstractItemModel + QTableView. С Кьютом поставляются примеры, там все достаточно понятно.
Для новичка я бы всё таки посоветовал QStandardItemModel вместо QAbstractItemModel.
Слабак. А как же вывезти его на середину пруда и столкнуть вводу? Тяжело, но плавать-то научится. Если мешок разгрызет, конечно.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Alexu007
Гость
« Ответ #4 : Декабрь 10, 2014, 10:28 »

А на каком этапе возникли затруднения? Что вы уже сделали и где остановились?
Записан
Hrundel
Гость
« Ответ #5 : Декабрь 10, 2014, 12:24 »

QAbstractItemModel + QTableView. С Кьютом поставляются примеры, там все достаточно понятно.
Для новичка я бы всё таки посоветовал QStandardItemModel вместо QAbstractItemModel.
Слабак. А как же вывезти его на середину пруда и столкнуть вводу? Тяжело, но плавать-то научится. Если мешок разгрызет, конечно.

А как быть с гуманизмом и социальностью?   Подмигивающий Веселый Веселый Веселый
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #6 : Декабрь 10, 2014, 12:26 »

QAbstractItemModel + QTableView. С Кьютом поставляются примеры, там все достаточно понятно.
Для новичка я бы всё таки посоветовал QStandardItemModel вместо QAbstractItemModel.
Слабак. А как же вывезти его на середину пруда и столкнуть вводу? Тяжело, но плавать-то научится. Если мешок разгрызет, конечно.

А как быть с гуманизмом и социальностью?   Подмигивающий Веселый Веселый Веселый
Гуманизмом мальчики в душе занимаются, а мы тут работаем.  Веселый
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Hrundel
Гость
« Ответ #7 : Декабрь 10, 2014, 12:27 »

QAbstractItemModel + QTableView. С Кьютом поставляются примеры, там все достаточно понятно.
Для новичка я бы всё таки посоветовал QStandardItemModel вместо QAbstractItemModel.
Слабак. А как же вывезти его на середину пруда и столкнуть вводу? Тяжело, но плавать-то научится. Если мешок разгрызет, конечно.

А как быть с гуманизмом и социальностью?   Подмигивающий Веселый Веселый Веселый
Гуманизмом мальчики в душе занимаются, а мы тут работаем.  Веселый

 Смеющийся Смеющийся Смеющийся
Записан
mindv0rtex
Гость
« Ответ #8 : Январь 06, 2015, 18:15 »

Благодарю за помощь. Описанный функционал успешно реализовал. Не могли бы Вы помочь со следующим вопросом? В QTableView я разрешаю выделять только ряд целиком, а не отдельные ячейки. Помимо этого, из всего ряда в итоге я разрешаю (через метод flags моей модели) редактировать напрямую только одну (среднюю из трех) ячейку. Если я кликаю на нее и начинаю печатать текст, то вызывается, как я понимаю, дефолтный делегат и происходит редактирование. Если же кликнуть на другие ячейки того же ряда, то, естественно, ничего не происходит. Как мне поменять это поведение на такое, при котором по началу печати на клавиатуре автоматически происходило редактирование средней ячейки выделенного ряда?
« Последнее редактирование: Январь 06, 2015, 18:41 от mindv0rtex » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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