Russian Qt Forum

Программирование => Python => Тема начата: mokynis от Ноябрь 23, 2022, 20:35



Название: QTableView и data
Отправлено: mokynis от Ноябрь 23, 2022, 20:35
помогите написать функцию data для TableView.
В Qt для C++
Код:
QVariant myTab::data(const QModelIndex &index,int role) const
{
    QVariant value=QSqlQueryModel::data(index,role);
//ловишь нужные параметры, возвращаешь то, что требуется
    return value;
}

В PyQt
 
Код:
def data(self, index, role):
    #эту строку считает рекурсией
    dval=self.data(self.index(index.row(),6)) #значение is_del в 6-м поле запроса
    if role==QtCore.Qt.BackgroundRole:
        #это не работает, потому что dval не определяется
        if dval>0:
            return QVariant(QColor(Qt.red)) #красный цвет для удаленных
        else:
            return value #это вообще не понятно, как узнать-аналогия с C++ не работает
    else:
        return self.data(index,role) #NULL #QVariant() #ни одно не подходит

как эту data правильно написать?


Название: Re: QTableView и data
Отправлено: kambala от Ноябрь 24, 2022, 22:06
dval надо прочитать из своей "модели" напрямую, без вызова метода self.data
Цитировать
это вообще не понятно, как узнать-аналогия с C++ не работает
это ты должен знать что надо вернуть в случае, если dval≤0. например, вернуть белый цвет.
Цитировать
NULL #QVariant() #ни одно не подходит
а что там должно "подходить"? это только ты можешь знать как надо обрабатывать другие роли.

предлагаю почитать в документации как вообще model-view работает, там и примеры есть.