crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> QTreeView, Drag and Drop, скрытые столбцы не передаются почему-то
poluna
  опции профиля:
сообщение 15.1.2016, 14:11
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 27
Регистрация: 5.10.2015
Пользователь №: 4458

Спасибо сказали: 1 раз(а)




Репутация:   0  


Всем привет.
В моем классе модели (производной от QStandardItemModel), есть такой код:
def dropMimeData(self, data, action, row, column, parent):
        if action == QtCore.Qt.IgnoreAction:
            return True
        if not data.hasFormat("application/draganddropdata.text.list"):
            return False

        encodedData = data.data("application/draganddropdata.text.list")
        stream = QtCore.QDataStream(encodedData, QtCore.QIODevice.ReadOnly)

        items = []
        while not stream.atEnd():
            text = stream.readQVariant().toString().toUtf8()
            items.append(str(text))
        if len(items) > 0:
            self.emit(QtCore.SIGNAL('treeDropData'), items)

        return True
Данный код работает.

Проблема в том, что если я скрываю столбцы у QTreeView, то в items данные из скрытых столбцов не попадают, а хотелось бы!
Как получать все столбцы, даже скрытые в dropMimeData из data?

Столбцы скрываю так: tree.hideColumn(n)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
poluna
  опции профиля:
сообщение 15.1.2016, 16:55
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 27
Регистрация: 5.10.2015
Пользователь №: 4458

Спасибо сказали: 1 раз(а)




Репутация:   0  


Что-то не подумав кинула код! :D
def mimeData(self, indexes):
        mimeData=QtCore.QMimeData()
        encodedData=QtCore.QByteArray()

        stream=QtCore.QDataStream(encodedData, QtCore.QIODevice.WriteOnly)
        for index in indexes:
            if index.isValid():
                text=self.data(index, QtCore.Qt.DisplayRole)
                stream.writeQVariant(text)
        mimeData.setData("application/draganddropdata.text.list", encodedData)
        return mimeData


Так вот: количество indexes, которые приходят в mimeData ровно столько, сколько видимых столбцов. :(

Сообщение отредактировал poluna - 15.1.2016, 16:51
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.11.2024, 17:00