QT Почему не видят пользовательский виджет, нарисованный делегатами? - PullRequest
0 голосов
/ 03 ноября 2011

У меня есть схема модель / вид.Я разрабатываю универсальные многоцелевые делегаты, и я хотел бы использовать некоторые пользовательские виджеты, которые у меня есть.Первое, что я проверил, не работает:

void A_delegates::paint(QPainter* painter, const QStyleOptionViewItem & option,
 const QModelIndex& index) const
QRect the_rect(option.rect);    
A_file_chooser file_chooser;
file_chooser.setGeometry(QRect(QPoint(0,0), the_rect.size()));
file_chooser.render(painter,the_rect.topLeft());

Я вижу пустую ячейку?Я прочитал документ в поисках чего-то полезного об этом, но безуспешно.Кто-нибудь может мне помочь ?Спасибо.

(средство выбора файлов так же просто, как метка плюс кнопка. Я вижу это в других сценариях)

1 Ответ

0 голосов
/ 03 ноября 2011

Вы пытаетесь подогнать средство выбора файлов к ячейке и заставить его отобразиться в вашем виджете. Но средство выбора файлов не является дочерним для чего-либо, оно еще не инициализировано, поэтому оно просто пропустит рендер. В функции paint делегата вы должны использовать данный художник для рисования чего-либо. Вы хотите статическое изображение кнопки в ячейке? Это не может быть нажата! Вам нужен настоящий селектор файлов в ячейке, добавленный как ребенок, чтобы он заработал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...