Я пытаюсь написать экспортер, который принимает QTableView
и записывает все свои данные в .csv-файл, чтобы его можно было просмотреть в MS Excel.
Теперь я не могу найти способ чтения текста из разделов горизонтального заголовка. Кажется, нет такого метода, как QHeaderView::sections
или что-то в этом роде, поэтому я не могу получить доступ к разделам QHeaderView. Однако есть QHeaderView::count
, что заставляет меня думать, что они действительно где-то сохранены в контейнере.
Так есть ли способ получить текст раздела QHeaderView
?
Как я могу записать текст раздела QHeaderView в файл?
Ответы (1)
Вы должны использовать метод ::headerData
вашей модели. Чтобы получить количество столбцов, вы можете использовать метод view->model()->columnCount();
.
person
Dmitry Sazonov
schedule
17.09.2013
Боюсь, до этого дойдет. Я просто надеялся, что будет более удобное решение.
- person LarissaGodzilla; 17.09.2013
Вы должны понимать шаблон Qt MVC. Вы не можете выбрать данные из представления. Представление ничего не знает о данных.
- person Dmitry Sazonov; 17.09.2013
Да, конечно, это имеет смысл. Но почему я могу считать разделы тогда? Не является ли это нарушением шаблона?
- person LarissaGodzilla; 17.09.2013
Нет, это не так. Вы должны позвонить
model->columnCount( QModelIndex() );
для этого. В идеальном случае вы должны спроектировать свой код так, чтобы все данные оставались независимыми от просмотра.
- person Dmitry Sazonov; 17.09.2013
Я, вероятно, не должен получать счетчик из представления, но я мог бы, если бы захотел, что я нахожу очень странным. Во всяком случае, я последовал вашему предложению, и теперь это работает. Я также осознал преимущества хранения данных отдельно от представления. Большое спасибо за Вашу помощь.
- person LarissaGodzilla; 17.09.2013