Найти - Пользователи
Полная версия: QTableView значение ячейки.
Начало » Центр помощи » QTableView значение ячейки.
1
Cheryrg
Добрый вечер всем.

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

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

        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
newIndex = table.model().index(index.row(), 0)

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

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

> PS/ Предвкушаю дальнейшие проблемы, почему в таблицу не выводится поля с датой из БД (mysql)?
elif role != Qt.DisplayRole:
            return QVariant()
Cheryrg
Заношу данные в переменную, по которой дальше открываю строку в новом окне.


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

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

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

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()]
Cheryrg
Я так понял проблема в том что запрос из БД возвращает datetime.date( ).
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB