Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Sasha от Сентябрь 23, 2014, 16:14



Название: Проблемма QWidget::render
Отправлено: Sasha от Сентябрь 23, 2014, 16:14
Здравствуйте,

1) У меня есть QTableView, который расположен в главном окне, но его верхний угол ниже клиентской области главного окна.
2) Для QTableView установлена модель и делегат, рисующий ячейку QTableView
3) Код ф-ии paint делегата имеет (после исключения ненужных деталей) следующий вид:
Код
C++ (Qt)
void CButtonDelegate::paint( QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index ) const
{
...
QPushButton btn;
btn.setGeometry( option.rect  ); btn.render( painter, option.rect.topLeft() );
painter->drawEllipse( option.rect );
...
}
 
Теперь ВОПРОС:
Почему элипс и кнопка могут быть смещены друг относительно друга?
Причём выглядит так, как-будто смещение кнопки делается не от левого верхнего угла QTableView, а от левого верхнего угла клиентской области главного окна.


Название: Re: Проблемма QWidget::render
Отправлено: Hrundel от Сентябрь 24, 2014, 18:16
А что возвращает option.rect ?