Russian Qt Forum
Ноябрь 13, 2024, 09:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTableView и data  (Прочитано 10088 раз)
mokynis
Самовар
**
Offline Offline

Сообщений: 176


Просмотр профиля
« : Ноябрь 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 правильно написать?
Записан

QT4, Qt5, Qt6 Debian, ArchLinux
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4746



Просмотр профиля WWW
« Ответ #1 : Ноябрь 24, 2022, 22:06 »

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

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

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 22.