Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 11, 2015 18:48:41

Cheryrg
Зарегистрирован: 2014-10-21
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

QTableView значение ячейки.

Добрый вечер всем.

Возникла такая проблема: есть таблица в которую вносятся данные из БД. Нужно что бы при нажатии на строку, переменной присваивалось значение первого столбца, выделенной строки. Пока глухо.

Научился выводить значение выделенной ячейки, номер строки и столбца, дальше застрял

        table.doubleClicked.connect(self.on_click)
        
    def on_click(self, index):
        print index.row(), index.column(),  index.data().toString()

PS/ Предвкушаю дальнейшие проблемы, почему в таблицу не выводится поля с датой из БД (mysql)?

    def data(self, index, role):
        if not index.isValid():
            return QVariant()
        elif role != Qt.DisplayRole:
            return QVariant()
        return decode_r[index.row()][index.column()]
Буду благодарен за помощ

Отредактировано Cheryrg (Янв. 11, 2015 18:58:53)

Офлайн

#2 Янв. 12, 2015 14:31:34

Cheryrg
Зарегистрирован: 2014-10-21
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

QTableView значение ячейки.

newIndex = table.model().index(index.row(), 0)

Как то так

Офлайн

#3 Янв. 14, 2015 22:50:33

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2762
Репутация: +  185  -
Профиль   Отправить e-mail  

QTableView значение ячейки.

Про QTableView надо в раздел GUI писать.

> Как то так
Зачем ты новый индекс получаешь? Получай сразу данные.

> PS/ Предвкушаю дальнейшие проблемы, почему в таблицу не выводится поля с датой из БД (mysql)?

elif role != Qt.DisplayRole:
            return QVariant()



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#4 Янв. 15, 2015 04:26:28

Cheryrg
Зарегистрирован: 2014-10-21
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

QTableView значение ячейки.

Заношу данные в переменную, по которой дальше открываю строку в новом окне.


elif role != Qt.DisplayRole:
            return QVariant()

Не совсем понял. У меня вроде все так же.

Офлайн

#5 Янв. 15, 2015 15:12:41

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2762
Репутация: +  185  -
Профиль   Отправить e-mail  

QTableView значение ячейки.

> Не совсем понял. У меня вроде все так же.

Это нужно удалить. Проверяй модель, там наверняка ошибка из-за которой дата не выводится.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#6 Янв. 16, 2015 06:30:06

Cheryrg
Зарегистрирован: 2014-10-21
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

QTableView значение ячейки.

Удаляю и в таблицу (в каждую ячейку вставляются чек боксы. ) Модель уже вдоль и поперек проверил, там и ошибаться то негде толком.

class MyTableModel(QtCore.QAbstractTableModel):
    def __init__(self, HeaderS, parent=None):
        super(MyTableModel, self).__init__()
        self.HeaderS = HeaderS
        self.decode_r = decode_r
        
    def rowCount(self, parent):
        return connection.affected_rows() # Возвращает число строк от последнего запроса
    def columnCount(self, parent):
        return 3    
#___________________________________________________  
    def data(self, index, role):
        if not index.isValid():
            return QVariant()
        elif role != Qt.DisplayRole:
            return QVariant()
        return self.decode_r[index.row()][index.column()]

Офлайн

#7 Янв. 16, 2015 18:03:27

Cheryrg
Зарегистрирован: 2014-10-21
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

QTableView значение ячейки.

Я так понял проблема в том что запрос из БД возвращает datetime.date( ).

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version