Я хочу использовать Qt для предоставления графического интерфейса для коллекции объектов, определенных пользователем. Например, я могу иметь следующий класс питонаQt: Списки объектов, определенных пользователем
class Person(object):
def __init__(self, name, age):
self.name = name
self.age = age
и связанный список экземпляров
people = [Person('John', 60), Person('Laura', 33)]
теперь я хочу использовать Qt представить просматриваемый список элементов в people
. Возможно, я хочу, чтобы определенная информация отображалась в различных текстовых полях, когда пользователь нажимает на имена людей в этом списке.
документация Qt содержит пример address book, который довольно хороший матч моем случае, но есть две важные вещи, отсутствующие в этом руководстве
- В адресной книге Tutorial фактические данные (которые в этот случай - адреса разных лиц) хранится в QMap. Каждое имя и адрес представлены как QString. QMap сопоставляет имена адресов. Это хорошо для этого простого примера, но я хочу обернуть интерфейс Qt вокруг своих собственных данных. Как это делается?
- В адресной книге не показано, как отобразить список существующих записей адресной книги.
Я думаю, что понятие архитектуры модели/вида имеет отношение к этому, поэтому я прочитал документацию model/view. Эта документация, похоже, сильно подчеркивает использование встроенных классов контейнеров Qt. Это нормально, но в конце я хочу обернуть это вокруг своих собственных структур данных, и я не нашел объяснения, как это сделать.
ВОПРОСЫ:
- Как я пишу код, чтобы выставить свои уже существующие данные по списку Qt или другой графический интерфейс?
- Документация по модели/системе просмотра действительно запутанна. Как Qt ожидает, что данные и связанные с ними классы будут организованы?
Я заинтересован в понимании этого и улучшении документации для других. Если эта нить привлечет внимание и полезную информацию, я попытаюсь правильно ее заархивировать на веб-странице Qt.
Спасибо
Спасибо, это полезно. Я думаю, работая с QAbstractListModel, я могу понять это. Если я получу что-то, я отправлю источник сюда. Если кто-то напишет пример на C++ для страниц Qt, который также будет очень приятным. –
@MartinisGroup Счастливые помочь. –