Russian Qt Forum
Ноябрь 23, 2024, 07:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 3 [4]   Вниз
  Печать  
Автор Тема: Опять многосточные QHeaderView...  (Прочитано 37076 раз)
v6y
Гость
« Ответ #45 : Июнь 06, 2010, 12:31 »

Магия! можете кинуть код целиком?
ну еще может быть у нас версии HMultiHeader разные.
Измененный main.cpp
Записан
ragzovskii
Гость
« Ответ #46 : Июнь 06, 2010, 13:01 »

Ну ведь это магия. В Qt Creator этот код работает, в MS VS2008 по-прежнему баг. может 10ю поставить в надежде, что все исправится? Улыбающийся
Записан
ragzovskii
Гость
« Ответ #47 : Июнь 06, 2010, 14:50 »

Проблему решил с помощью костыля: перенес в public mutable colspan* spans и при генерации заголовка делал multiHeader->spans = NULL. костыль работает для 4 записей, а дальше таблица, один фиг, не читабельна Улыбающийся

пригодилась бы еще возможность получения названий объединенных столбцов
« Последнее редактирование: Июнь 06, 2010, 14:55 от ragzovskii » Записан
v6y
Гость
« Ответ #48 : Июнь 06, 2010, 15:42 »

Проблему решил с помощью костыля: перенес в public mutable colspan* spans и при генерации заголовка делал multiHeader->spans = NULL. костыль работает для 4 записей, а дальше таблица, один фиг, не читабельна Улыбающийся

пригодилась бы еще возможность получения названий объединенных столбцов

Я не ипсользую Visual Studio, а в связке qmake, g++, make  все работает нормально и под Windows и под Linux. Попробуйте под отладчиком посмотреть почему такое неадекватное поведение в Visual Studio.

В конструкторе spans и так устанавливается в NULL. Для переинициализации spans лучше использовать метод freeSpans, что-то типа:
public:
 freeAllSpans() { freesSpans(spans); level=1;}
 - он все удалит и обнулит.  

Получить названия объединенных столбцов нетрудно (getTopSpan(start) получает самый верхний span, далее обход по дереву, условие останова - start и stop должны совпадать с соотвествующими переданными параметрами), но мне эта возможность не нужна, а изменить текст  объединенных столбцов  можно и в текущей версии - при вызове spanCols(Text,start,stop) если span существует, то текст заменится на новый Text.

« Последнее редактирование: Июнь 06, 2010, 16:25 от v6y » Записан
Prm
Гость
« Ответ #49 : Октябрь 12, 2010, 10:03 »

Заюзал предложенное решение, понравилось. В процессе эксперимента с компонентом нашел баг. Использовал QTableView. В случае выделения всей строки, в хедере таблицы шрифт подсекций жирный, а у обобщенного заголовка обычный.
Код:
    table->setSelectionMode(QAbstractItemView::SingleSelection);
    table->setSelectionBehavior(QAbstractItemView::SelectRows);
Записан
v6y
Гость
« Ответ #50 : Октябрь 12, 2010, 13:16 »

Заюзал предложенное решение, понравилось. В процессе эксперимента с компонентом нашел баг. Использовал QTableView. В случае выделения всей строки, в хедере таблицы шрифт подсекций жирный, а у обобщенного заголовка обычный.
Код:
    table->setSelectionMode(QAbstractItemView::SingleSelection);
    table->setSelectionBehavior(QAbstractItemView::SelectRows);

Это не баг - это фича  Смеющийся
Можно воспользоваться методом QHeaderView::setHighlightSections, тогда вобще подсвечиваться не будет, либо  переписать  paintSection полностью - я от лени просто ограничиваюсь вызовом paintSection от QHeaderView
Записан
Andrew Vladoff
Гость
« Ответ #51 : Март 01, 2012, 08:51 »

Заметил, что если сжать таблицу до размера 5х5 см, то начинает грузить проц.
А как разукрасить поля в заголовке разными цветами?
Записан
Страниц: 1 2 3 [4]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.042 секунд. Запросов: 20.