LINUX.ORG.RU

Как узнать код цвета ячейки в QTableView?

 ,


0

1

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

QStandardItem* item =table->model->item(row,column);
            QBrush br=item->background();
            QString color=br.color().name();
            qDebug()<<color;
Выводиться только вот такой код #000000.

Что я делаю не правильно?

Подскажите новичку.

Ответ на: комментарий от Egor12

Нужно больше данных. У тебя точно tableview? Не помню, чтобы у tableview был метод, возвращающий QStandardItem*. row, column точно правильные?

UVV ★★★★★ ()
Ответ на: комментарий от Egor12

выложи куда-нибудь тестовый проект

UVV ★★★★★ ()

Подозреваю (Ванга-mode on), что тебе нужно брать цвет из item->data(Qt::DisplayRole) и других ролей. Там оно тебе вернёт QVariant, которому просто делаешь value<QColor>()

XMs ★★★★★ ()
Ответ на: комментарий от XMs

item->data(Qt::DisplayRole)

Тоже хотел так посоветовать, но емнип, QStandardItemModel так и делает под капотом. Нужно ванговать пример, где вопроизводится, ибо косяк где-то в другом месте скорее всего

UVV ★★★★★ ()
Ответ на: комментарий от FreakMurderer

Предположу, что лет через 10-20, будет подобный топик, где вопрос будет задаваться относительно некого нового апи, скажем, Much Powerful advanced MEGA cool qt.

Вопрошатель: Зачем изучать то, где hello world вместе с библиотеками весит СОТНИ мегабайт?

Отвечающий:ну и используй свой обычный qt и закрой вкладку. Ты не такой крутой как мы, изучающие Much Powerful advanced MEGA cool qt , позволяющий программировать прямо из дивана на геймпаде.

FreakMurderer ()
Ответ на: комментарий от UVV

QStandardItemModel так и делает под капотом

Да, там это значение по умолчанию. Просто так нагляднее показать, на что обратить внимание.


бо косяк где-то в другом месте скорее всего

Тут уже надо знать, чем и как модель заполнена

XMs ★★★★★ ()
Ответ на: комментарий от fluorite

Не видел ни одного толкового uwp приложения. Как по мне такие приложения для каких то одноклеточных сделаны, три большие кнопки, меню в полэкрана, гламурный интерфейс, минимум настроек, минимум юзабилити.

Видел, только как нормальные winapi приложения запихивали в uwp оболочку, вот только нахрена, малопонятно. Наверное, чтобы угнаться, за модой, которую диктует преобладающее большинство одноклеточных. Тут сложно что-то изменить.

FreakMurderer ()
Ответ на: комментарий от FreakMurderer

Ну да, большущие приложения-комбайны с насыщенным графическим интерфейсом трудновато на winapi писать. Ну тогда уж лучше на java FX.

В таких приложениях размер exe и скорость загрузки отходят на второй план. Там главное производительность уже загруженного приложения в процессе работы.

FreakMurderer ()

Ты лучше скажи, как оказалось, что они имеют разный цвет. Ты его сам выставил, или как?

unC0Rr ★★★★★ ()
Ответ на: комментарий от unC0Rr

Так ведь background().color() ворачивает мне QColor, а мне нужно код цвета. Проблему я решил, в ячейках меняю QBrush, а не QColor:

QColor color("#00FFA6");
QBrush br(color);
br.setColor(color);
table->model->item(row,column)->setBackground(br);
После узнаю код цвета:
QStandardItem* item =this->model->item(i,x);
QString color=item->background().color().name();
qDebug()<<color;
И выводит уже не #000000, а то что надо, в данном случае #00FFA6.

Ребят, спасибо кто пытался помочь.

Egor12 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.