Russian Qt Forum
Ноябрь 18, 2024, 20:06
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Представление данных в виде таблицы
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Представление данных в виде таблицы (Прочитано 4288 раз)
mindv0rtex
Гость
Представление данных в виде таблицы
«
:
Декабрь 10, 2014, 06:08 »
Добрый день! Я недавно начал изучать Qt в свободное от работы время, коего немного. Поэтому прошу помощи касательно того, что из функционала библиотеки мне необходимо освоить, чтобы написать следующую простенькую для экспертов программу:
Исходные данные представляют из себя массив пар из даты и числа с плавающей точкой. Программа должна изобразить их в виде таблицы с тремя колонками, в первой перечисляются даты, затем числа, затем некое осредненное по времени значение. Необходимо иметь возможность загружать/сохранять эти данные из/в XML (с этим я уже разобрался), добавлять новый ряд в таблицу, редактировать и удалять существующие ряды. Добавление происходит при нажатии на кнопку, которая создаст пустой ряд внизу таблицы и поместит фокус в первую колонку. При этом дату можно вводить только в определенном формате (дд/мм/гггг), а число можно ввести только, если уже есть дата для него. Опционально в ячейке с датой справа должна быть иконка, при нажатии которой выскакивает календарик для выбора даты. Редактировать можно только первые две колонки, последняя должна быть read-only. Удаление выделенного ряда тоже по нажатию кнопки.
Вроде весь функционал описал... Буду признателен за любые подсказки или ссылки о том, какие средства Qt мне необходимы, чтобы его реализовать...
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Представление данных в виде таблицы
«
Ответ #1 :
Декабрь 10, 2014, 08:05 »
QAbstractItemModel + QTableView. С Кьютом поставляются примеры, там все достаточно понятно.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Kurles
Бывалый
Offline
Сообщений: 480
Re: Представление данных в виде таблицы
«
Ответ #2 :
Декабрь 10, 2014, 08:15 »
Цитата: Пантер от Декабрь 10, 2014, 08:05
QAbstractItemModel + QTableView. С Кьютом поставляются примеры, там все достаточно понятно.
Для новичка я бы всё таки посоветовал QStandardItemModel вместо QAbstractItemModel.
Записан
Код
C++ (Qt)
while
(
!
asleep
(
)
)
sheep
++;
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Представление данных в виде таблицы
«
Ответ #3 :
Декабрь 10, 2014, 08:18 »
Цитата: Kurles от Декабрь 10, 2014, 08:15
Цитата: Пантер от Декабрь 10, 2014, 08:05
QAbstractItemModel + QTableView. С Кьютом поставляются примеры, там все достаточно понятно.
Для новичка я бы всё таки посоветовал QStandardItemModel вместо QAbstractItemModel.
Слабак. А как же вывезти его на середину пруда и столкнуть вводу? Тяжело, но плавать-то научится. Если мешок разгрызет, конечно.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Alexu007
Гость
Re: Представление данных в виде таблицы
«
Ответ #4 :
Декабрь 10, 2014, 10:28 »
А на каком этапе возникли затруднения? Что вы уже сделали и где остановились?
Записан
Hrundel
Гость
Re: Представление данных в виде таблицы
«
Ответ #5 :
Декабрь 10, 2014, 12:24 »
Цитата: Пантер от Декабрь 10, 2014, 08:18
Цитата: Kurles от Декабрь 10, 2014, 08:15
Цитата: Пантер от Декабрь 10, 2014, 08:05
QAbstractItemModel + QTableView. С Кьютом поставляются примеры, там все достаточно понятно.
Для новичка я бы всё таки посоветовал QStandardItemModel вместо QAbstractItemModel.
Слабак. А как же вывезти его на середину пруда и столкнуть вводу? Тяжело, но плавать-то научится. Если мешок разгрызет, конечно.
А как быть с гуманизмом и социальностью?
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Представление данных в виде таблицы
«
Ответ #6 :
Декабрь 10, 2014, 12:26 »
Цитата: Hrundel от Декабрь 10, 2014, 12:24
Цитата: Пантер от Декабрь 10, 2014, 08:18
Цитата: Kurles от Декабрь 10, 2014, 08:15
Цитата: Пантер от Декабрь 10, 2014, 08:05
QAbstractItemModel + QTableView. С Кьютом поставляются примеры, там все достаточно понятно.
Для новичка я бы всё таки посоветовал QStandardItemModel вместо QAbstractItemModel.
Слабак. А как же вывезти его на середину пруда и столкнуть вводу? Тяжело, но плавать-то научится. Если мешок разгрызет, конечно.
А как быть с гуманизмом и социальностью?
Гуманизмом мальчики в душе занимаются, а мы тут работаем.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Hrundel
Гость
Re: Представление данных в виде таблицы
«
Ответ #7 :
Декабрь 10, 2014, 12:27 »
Цитата: Пантер от Декабрь 10, 2014, 12:26
Цитата: Hrundel от Декабрь 10, 2014, 12:24
Цитата: Пантер от Декабрь 10, 2014, 08:18
Цитата: Kurles от Декабрь 10, 2014, 08:15
Цитата: Пантер от Декабрь 10, 2014, 08:05
QAbstractItemModel + QTableView. С Кьютом поставляются примеры, там все достаточно понятно.
Для новичка я бы всё таки посоветовал QStandardItemModel вместо QAbstractItemModel.
Слабак. А как же вывезти его на середину пруда и столкнуть вводу? Тяжело, но плавать-то научится. Если мешок разгрызет, конечно.
А как быть с гуманизмом и социальностью?
Гуманизмом мальчики в душе занимаются, а мы тут работаем.
Записан
mindv0rtex
Гость
Re: Представление данных в виде таблицы
«
Ответ #8 :
Январь 06, 2015, 18:15 »
Благодарю за помощь. Описанный функционал успешно реализовал. Не могли бы Вы помочь со следующим вопросом? В QTableView я разрешаю выделять только ряд целиком, а не отдельные ячейки. Помимо этого, из всего ряда в итоге я разрешаю (через метод flags моей модели) редактировать напрямую только одну (среднюю из трех) ячейку. Если я кликаю на нее и начинаю печатать текст, то вызывается, как я понимаю, дефолтный делегат и происходит редактирование. Если же кликнуть на другие ячейки того же ряда, то, естественно, ничего не происходит. Как мне поменять это поведение на такое, при котором по началу печати на клавиатуре автоматически происходило редактирование средней ячейки выделенного ряда?
«
Последнее редактирование: Январь 06, 2015, 18:41 от mindv0rtex
»
Записан
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...