Russian Qt Forum

Qt => QSS => Тема начата: xokc от Февраль 27, 2011, 21:13



Название: Толщина border из styleSheet
Отправлено: xokc от Февраль 27, 2011, 21:13
Как определить в коде paintEvent толщину рамки, задаваемую во внешней styleSheet?
Этот код, если рамка в styleSheet задана в виде картинок, рисует линию в том числе и поверх рамки.
Код
C++ (Qt)
void PhaseView::paintEvent(QPaintEvent * /*event*/)
{
   QStyleOption opt;
   opt.initFrom(this);
   QPainter painter(this);
   style()->drawPrimitive(QStyle::PE_Widget, &opt, &painter, this);
 
   painter.setPen(Qt::red);
   painter.drawLine(0, 0, width(), height());
}
 
Как мне узнать толщину рамки внутри этого кода?


Название: Re: Толщина border из styleSheet
Отправлено: GreatSnake от Март 01, 2011, 10:45
int QStyle::pixelMetric ( PixelMetric metric, const QStyleOption * option = 0, const QWidget * widget = 0 )


Название: Re: Толщина border из styleSheet
Отправлено: xokc от Март 12, 2011, 11:20
Спасибо. Для border с одинаковой шириной это подходит с metric = QStyle::PM_DefaultFrameWidth. Теперь усложню вопрос. Как мне узнать Content Rectangle из http://doc.qt.nokia.com/latest/stylesheet-customizing.html при использовании, например, следующей таблицы стилей:
Код
CSS
margin: 3 7 10 15;
border-width: 3 7 10 15;
padding: 3 7 10 15;