Hi, All!
Стоит следующая задача — иметь в таблице модель-представление кнопку в некоторых ячейках. Для рисования использован следующий ход:
void MyDelegat::paint(QPainter* painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
//Закрашиваем фон, пишем текст
// . . .
//Рисуем кнопку
QPushButton btn;
btn.setText(...);
btn.setGeometry(...);
btn.setAutoFillBackground(true);
QPixmap map = btn.grab();
painter->drawPixmap(btn.x(), btn.y(), map);
}
Код сильно упрощен: на самом деле теневая кнопка создается единожды в конструкторе MyDelegat, а по сигналу entered(QModelIndex) в ячейке создается уже нормальная кнопка по тем же координатам и подсовывается в качестве editor. Сути это не меняет. Все работает ништяк, за исключением одного момента — если у кнопки скруглены углы, то участки фона вокруг углов кнопки не прорисовываются, остаются белыми.
Есть ли способ решить эту проблему? Закрасить углы цветом фона, или м.б, есть другой способ нарисовать кнопку в делегате?