Как сохранить расположение столбцов в QTableWidget? |
Здравствуйте, гость ( Вход | Регистрация )
Как сохранить расположение столбцов в QTableWidget? |
RazrFalcon |
14.3.2011, 22:29
Сообщение
#1
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
При перемещении столбцов, их порядковый номер не меняется.
Беру так: Как бы я не двигал, но как выдавало "один", так и выдает.Можно отловить перемещение через void QTableView::columnMoved ( int column, int oldIndex, int newIndex ) [protected slot] но для этого нужно создавать субкласс. В инете ничего подобного не нашел, на форуме, только это. "Как сохранить расположение столбцов в QTableWidget?" |
|
|
BRE |
14.3.2011, 22:33
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Есть же сигнал:
void QHeaderView::sectionMoved ( int logicalIndex, int oldVisualIndex, int newVisualIndex ) [signal] ну и: int QHeaderView::visualIndex ( int logicalIndex ) const int QHeaderView::logicalIndex ( int visualIndex ) const int QHeaderView::sectionPosition ( int logicalIndex ) const Сообщение отредактировал BRE - 14.3.2011, 22:50 |
|
|
Алексей |
15.3.2011, 12:47
Сообщение
#3
|
Студент Группа: Участник Сообщений: 37 Регистрация: 29.8.2010 Пользователь №: 1988 Спасибо сказали: 0 раз(а) Репутация: 0 |
QTableView и QTableWidget разные вещи!
ПС QTableView работает на модели (рекомендую изучить http://doc.crossplatform.ru/qt/4.6.x/model...troduction.html ) - можешь посмотреть стандартный пример в креаторе Basic Sort/Filter Model Example. для использования модели можешь создать объект QStandardItemModel, загрузить в QTableView::setModel и ловишь сигнал модели QStandardItemModel::columnsMoved после забирать из модели нужный QStandardItemModel::headerData (и никаких классов не придётся создавать/наследовать) ППС void QTableView::columnMoved ( int column, int oldIndex, int newIndex ) [protected slot] так же предназначен для отлавливания сигнала от моделей QAbstractItemModel::columnsMoved, поэтому чтоб в унаследованном классе его обрабатывать, тебе сначала нужно будет на него так же подписаться Сообщение отредактировал Алексей - 15.3.2011, 12:49 |
|
|
Litkevich Yuriy |
15.3.2011, 12:57
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
RazrFalcon |
4.4.2011, 13:56
Сообщение
#5
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Что вообще не пойму как этот класс задействовать.
В хедер добавил: Ну и в соурс:
В итоге вообще ничего не выводит в консоль! Я не силен в классах, в чем ошибка? |
|
|
abc |
4.4.2011, 14:18
Сообщение
#6
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
ты повторяешь ошибку, о которой у нас уже был разговор
MainWindow my; //ты создаёшь новый объект, а не обращаешься к существующему! qDebug()<<my.table->horizontalHeader()->visualIndex(0); а объект класса header ты где-нибудь создал? установил его объекту тэйблвью? почему ты не силён в классах? как ты с ними знакомился? |
|
|
RazrFalcon |
4.4.2011, 15:29
Сообщение
#7
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Цитата MainWindow my; //ты создаёшь новый объект, а не обращаешься к существующему! А как нужно? Или где можно почитать об этом?Цитата а объект класса header ты где-нибудь создал? установил его объекту тэйблвью? Не понял - значит нет.Цитата как ты с ними знакомился? Из книг/сайтов. Но многое осталось непонятным.
|
|
|
RazrFalcon |
4.4.2011, 21:33
Сообщение
#8
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Кто не будь может разжевать в чем проблема?
Я застопорился на этом, ни как не могу понять как правильно сделать. |
|
|
abc |
5.4.2011, 11:55
Сообщение
#9
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
Вот ты написал код класса. Теперь создай его экземпляр в конструкторе MainWindow, и установи свой header в tableView:
Касаемо того, что у тебя написано, правильно написать так, хотя я не знаю, что ты пытаешься сделать, я просто показываю, как это нужно было написать:
|
|
|
RazrFalcon |
5.4.2011, 12:19
Сообщение
#10
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Сам класс:
Соурс:
In constructor ‘header::header()’: error: no matching function for call to ‘QHeaderView::QHeaderView()’ и тд. |
|
|
Текстовая версия | Сейчас: 26.11.2024, 13:38 |