Russian Qt Forum

Qt => Вопросы новичков => Тема начата: mindv0rtex от Декабрь 10, 2014, 06:08



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

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

Вроде весь функционал описал... Буду признателен за любые подсказки или ссылки о том, какие средства Qt мне необходимы, чтобы его реализовать...


Название: Re: Представление данных в виде таблицы
Отправлено: Пантер от Декабрь 10, 2014, 08:05
QAbstractItemModel + QTableView. С Кьютом поставляются примеры, там все достаточно понятно.


Название: Re: Представление данных в виде таблицы
Отправлено: Kurles от Декабрь 10, 2014, 08:15
QAbstractItemModel + QTableView. С Кьютом поставляются примеры, там все достаточно понятно.
Для новичка я бы всё таки посоветовал QStandardItemModel вместо QAbstractItemModel.


Название: Re: Представление данных в виде таблицы
Отправлено: Пантер от Декабрь 10, 2014, 08:18
QAbstractItemModel + QTableView. С Кьютом поставляются примеры, там все достаточно понятно.
Для новичка я бы всё таки посоветовал QStandardItemModel вместо QAbstractItemModel.
Слабак. А как же вывезти его на середину пруда и столкнуть вводу? Тяжело, но плавать-то научится. Если мешок разгрызет, конечно.


Название: Re: Представление данных в виде таблицы
Отправлено: Alexu007 от Декабрь 10, 2014, 10:28
А на каком этапе возникли затруднения? Что вы уже сделали и где остановились?


Название: Re: Представление данных в виде таблицы
Отправлено: Hrundel от Декабрь 10, 2014, 12:24
QAbstractItemModel + QTableView. С Кьютом поставляются примеры, там все достаточно понятно.
Для новичка я бы всё таки посоветовал QStandardItemModel вместо QAbstractItemModel.
Слабак. А как же вывезти его на середину пруда и столкнуть вводу? Тяжело, но плавать-то научится. Если мешок разгрызет, конечно.

А как быть с гуманизмом и социальностью?   ;) :D :D :D


Название: Re: Представление данных в виде таблицы
Отправлено: Пантер от Декабрь 10, 2014, 12:26
QAbstractItemModel + QTableView. С Кьютом поставляются примеры, там все достаточно понятно.
Для новичка я бы всё таки посоветовал QStandardItemModel вместо QAbstractItemModel.
Слабак. А как же вывезти его на середину пруда и столкнуть вводу? Тяжело, но плавать-то научится. Если мешок разгрызет, конечно.

А как быть с гуманизмом и социальностью?   ;) :D :D :D
Гуманизмом мальчики в душе занимаются, а мы тут работаем.  :D


Название: Re: Представление данных в виде таблицы
Отправлено: Hrundel от Декабрь 10, 2014, 12:27
QAbstractItemModel + QTableView. С Кьютом поставляются примеры, там все достаточно понятно.
Для новичка я бы всё таки посоветовал QStandardItemModel вместо QAbstractItemModel.
Слабак. А как же вывезти его на середину пруда и столкнуть вводу? Тяжело, но плавать-то научится. Если мешок разгрызет, конечно.

А как быть с гуманизмом и социальностью?   ;) :D :D :D
Гуманизмом мальчики в душе занимаются, а мы тут работаем.  :D

 ;D ;D ;D


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