там рассматриваются конкретные примеры, реализация MVC. Что вы имеете под понятием архитектура? Архитектура приложения?
я имею, что я имею общее представление, что такое MVC, и что для решения моей задачи нужно некий внутренний источник данных и некий гуй для их отображения. причём гуй должен состоять из некой иерархии встроенных друг в друга виджетов.
подозреваю, что не очень чётко изложил задачу (сам еёё только недавно понял). попробую ещё раз: есть плавающее окно, в котором нужно отобразить результат поиска. поиском оно не занимается, а только отображает результат, получаемый извне. его задачи:
- попарсить результаты поиска
- передать их окну просмотрщика документов
- получить о него html-код с кусками документов, в которых искомые фрагменты подсвечены
- отобразить их в списке (с подсветкой кусков, что важно)
- а потом ещё при кликах на разных строках списка сгенерить команду просмотрщику промотать документ до нужного места.
дерево файлов в самом списке не нужно, поиск всегда по одному документу, и поиск в найденном не нужен.ъ
в итоге получилось так (аттач). для списка использован QTableWidget (QListWidget отказался отображать в себе виджеты почему-то), для айтемов - QTextBrowser (необходимо, чтобы айтем понимал html). оставшиеся вопросы:
1. как запретить выделение текста в QTextBrowser? искал - не понял. выключать его не катаит, так как он тогда становится чёрно-белым.
2. как пробросить клики на браузерах таблице? это нужно, чтобы понять, на каком айтеме мы ткнули мышью.
3. почему может не отображаться горизонтальный скролл в таблице? с вертикальным всё нормально, появляется, когда нужен, а горизонтальный не появляется никогда. в настройках у обоих стоит ScrollBarAsNeeded.
upd: почитал доки и понял, что первые два вопроса по идее побеждаются, если отнаследоваться от QTextBrowser и сделать promote. я просто раньше в билдере писал в основном, там наследование от VCL-ного класса - целая история.
но третий вопрос остаётся.