Название: Один QHeaderView для нескольких таблиц Отправлено: qks1 от Ноябрь 18, 2012, 08:04 Доброго времени!
Есть необходимость создать табвиджет с однотипными таблицами на каждой вкладке (данные будут браться из одной БД, но фильтры будут применяться разные). При этом, если в одной из вкладок пользователь изменяет размеры столбцов или их порядок - те же изменения должны происходить и в остальных вкладках. Самое очевидное, как мне казалось, решение - создать один горизонтальный хедер и подсунуть его каждой таблице. Простейший код: Код
Но не тут-то было: во всех вкладках, кроме последней, вместо заголовка зияла пустота: (http://cs407621.userapi.com/v407621008/3368/9LMle3Qfb-o.jpg) При этом, если в последней вкладке (в которой заголовок отображается корректно), изменить ширину или порядок столбцов, то они меняются и в других вкладках, то есть фактически хедер установился, но не отображается! Что надо сделать, чтобы он отобразился? Или, если я ерунду творю, наставьте меня на путь истинный, ибо я только учусь. Спасибо заранее. Название: Re: Один QHeaderView для нескольких таблиц Отправлено: carrygun от Ноябрь 18, 2012, 08:59 Ну попробуй для начала show() у хедера вызывать.
Название: Re: Один QHeaderView для нескольких таблиц Отправлено: kambala от Ноябрь 18, 2012, 10:28 нельзя, чтобы один виджет использовался в разных местах одновременно. создай «копии» хедера, а при изменении ширины/порядка отправляй сигнал.
Название: Re: Один QHeaderView для нескольких таблиц Отправлено: UNION labs от Ноябрь 18, 2012, 12:28 На мой взгляд лучше использовать QTabBar вместо QTabWidget'a. Таким образом получится одна модель и один вид, а при смене вкладок к модели применять необходимые фильтры.
Название: Re: Один QHeaderView для нескольких таблиц Отправлено: qks1 от Ноябрь 18, 2012, 19:50 На мой взгляд лучше использовать QTabBar вместо QTabWidget'a. На вкладках будут и другие виджеты, так что плохой вариант. Короче, покурив исходники, понял, что дело всё в setParent. Сделал, чтобы при смене вкладки в качестве родителя для хедера устанавливался QTableView с текущей вкладки - всё заработало как надо. |