Название: QTableWidget - изменение logicalIndex Отправлено: wildcat от Февраль 13, 2012, 11:24 Была создана таблица (tableWidget), собранная из двух таблиц запросом БД QSQLITE.
Так как столбцы в tableWidget были не в том визуальном порядке. в котором нужно, тх визуальный порядок был изменен таким образом: Код
Визуально все хорошо отображается... Но имеются ряд каких то багов.. Таблица tableWidget - создается при клике по кнопке. При первом клике отображение визуально как и нужно, а при втором клике отображение столбцов меняется. Как понял огический индекс не меняется, меняется только визуальный... Как можно приравнять логический индекс к визуальному? Вот просмотреть логический индекс относительно визуального могу: Код qDebug выводит - 5, 1, 4, 0, 2 Так понимаю что это делается с помощью int QHeaderView::logicalIndex ( int visualIndex ) const. Но реализовать не получается. Название: Re: QTableWidget - изменение logicalIndex Отправлено: Пантер от Февраль 13, 2012, 11:26 Не парь мозги и юзай модель/представление.
Название: Re: QTableWidget - изменение logicalIndex Отправлено: wildcat от Февраль 13, 2012, 11:31 Т.е. созданную таблицу с отсортировкой столбцов сначала представить как модель, а потом перенаправить в QTableWidget?
Название: Re: QTableWidget - изменение logicalIndex Отправлено: Пантер от Февраль 13, 2012, 11:33 Нет. Никакого QTableWidget. Используй модель и QTableView. Вообще, почитай про модель/представление.
Название: Re: QTableWidget - изменение logicalIndex Отправлено: wildcat от Февраль 13, 2012, 11:45 Пользовался моделью... Но при создании таблицы из двух предыдущих, выхода кроме использования QtableWidget е\не нашел.
Если не трудно посмотрите: Код
Название: Re: QTableWidget - изменение logicalIndex Отправлено: Пантер от Февраль 13, 2012, 11:50 Нее, в твоем коде я копаться не буду. :)
Ты лучше опиши структуру таблицы и то, что хочешь увидеть. Название: Re: QTableWidget - изменение logicalIndex Отправлено: wildcat от Февраль 13, 2012, 12:16 Ок. Была такая проблема. есть таблица в sqlite, ее надо было преобразовать визуально, несколькими шагами было это сделано. при меры в вложении.
Из исходной таблицы Table_1... выло сделано два запроса и созданы две промежуточные таблицы. Две эти промежуточные таблицы были реализованы в tableWidget'e как одна. Далее в tableWidget колонки были отсортированы. Название: Re: QTableWidget - изменение logicalIndex Отправлено: mutineer от Февраль 13, 2012, 12:20 Вот очень интересно зачем ты в своем коде создавал два TableView? они же не отображаются нигде, я правильно понимаю?
Название: Re: QTableWidget - изменение logicalIndex Отправлено: wildcat от Февраль 13, 2012, 12:21 Они не отображаются)) Отображались, использовал их для просмотра запросов. Но так же используются. для подсчета ячеек таблицы
Название: Re: QTableWidget - изменение logicalIndex Отправлено: Пантер от Февраль 13, 2012, 12:22 На сколько мне кажется, это можно сделать одним запросом, но я sql уже достаточно сильно забыл, так что лучше спросить на sql.ru.
Ну, а так, наследуешься от QAbstractItemModel и в ней уже делаешь свои запросы, формируешь данные и хранишь их. И эту модель подсовываешь вьюхе. Название: Re: QTableWidget - изменение logicalIndex Отправлено: wildcat от Февраль 13, 2012, 12:26 ОК. спрошу на sql форуме. В книгах видел пример только из двух запросов....
Название: Re: QTableWidget - изменение logicalIndex Отправлено: mutineer от Февраль 13, 2012, 12:27 ОК. спрошу на sql форуме. В книгах видел пример только из двух запросов.... Даже делая два запроса ты все равно можешь обойтись одной моделью Название: Re: QTableWidget - изменение logicalIndex Отправлено: wildcat от Февраль 13, 2012, 13:21 А изменить индекс tableWidget нельзя?
Название: Re: QTableWidget - изменение logicalIndex Отправлено: Bepec от Февраль 13, 2012, 13:36 Чесслово, лучше используй model-View. А уже в нём творить сможешь всё что душеньке угодно ;)
Название: Re: QTableWidget - изменение logicalIndex Отправлено: wildcat от Февраль 13, 2012, 13:51 Буду пробовать ))
Название: Re: QTableWidget - изменение logicalIndex Отправлено: wildcat от Февраль 13, 2012, 15:36 Не подскажете нормальную литературу где можно посмотреть реализацию моделей? Я так понимаю мне придется воспользоваться QAbstractTableModel.
Название: Re: QTableWidget - изменение logicalIndex Отправлено: Пантер от Февраль 13, 2012, 15:37 Начинай отсюда (http://ru.wikipedia.org/wiki/Model-View-Controller).
Название: Re: QTableWidget - изменение logicalIndex Отправлено: mutineer от Февраль 13, 2012, 15:39 В доках Qt тоже неплохо написано. Я почти только ими пользовался
Название: Re: QTableWidget - изменение logicalIndex Отправлено: wildcat от Февраль 13, 2012, 15:45 Спасибо ))
Название: Re: QTableWidget - изменение logicalIndex Отправлено: wildcat от Февраль 13, 2012, 16:25 как понял, проще всего создать модель, определить в ней структуру и все отобразить в tableview. Теперь понял, как можно все сделать одним запросом...
У меня было два запроса, первый запрос выдавал название будущих столбцов, другой данный будущей таблицы. Так подумал, ведь можно вывести данные которые нужны, а название колонок задать вручную. Что то до меня ни как не дойдет... вот создаю модель запроса из таблицы: Код
Все создается... А каким методом редактировать саму модель? Название: Re: QTableWidget - изменение logicalIndex Отправлено: Пантер от Февраль 13, 2012, 16:28 Редактировать уже вручную своими sql запросами.
|