Как я могу записать текст раздела QHeaderView в файл?

Я пытаюсь написать экспортер, который принимает QTableView и записывает все свои данные в .csv-файл, чтобы его можно было просмотреть в MS Excel.

Теперь я не могу найти способ чтения текста из разделов горизонтального заголовка. Кажется, нет такого метода, как QHeaderView::sections или что-то в этом роде, поэтому я не могу получить доступ к разделам QHeaderView. Однако есть QHeaderView::count, что заставляет меня думать, что они действительно где-то сохранены в контейнере.

Так есть ли способ получить текст раздела QHeaderView?


person LarissaGodzilla    schedule 17.09.2013    source источник


Ответы (1)


Вы должны использовать метод ::headerData вашей модели. Чтобы получить количество столбцов, вы можете использовать метод view->model()->columnCount();.

person Dmitry Sazonov    schedule 17.09.2013
comment
Боюсь, до этого дойдет. Я просто надеялся, что будет более удобное решение. - person LarissaGodzilla; 17.09.2013
comment
Вы должны понимать шаблон Qt MVC. Вы не можете выбрать данные из представления. Представление ничего не знает о данных. - person Dmitry Sazonov; 17.09.2013
comment
Да, конечно, это имеет смысл. Но почему я могу считать разделы тогда? Не является ли это нарушением шаблона? - person LarissaGodzilla; 17.09.2013
comment
Нет, это не так. Вы должны позвонить model->columnCount( QModelIndex() ); для этого. В идеальном случае вы должны спроектировать свой код так, чтобы все данные оставались независимыми от просмотра. - person Dmitry Sazonov; 17.09.2013
comment
Я, вероятно, не должен получать счетчик из представления, но я мог бы, если бы захотел, что я нахожу очень странным. Во всяком случае, я последовал вашему предложению, и теперь это работает. Я также осознал преимущества хранения данных отдельно от представления. Большое спасибо за Вашу помощь. - person LarissaGodzilla; 17.09.2013