Russian Qt Forum
Ноябрь 22, 2024, 18:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Толщина border из styleSheet  (Прочитано 4459 раз)
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« : Февраль 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());
}
 
Как мне узнать толщину рамки внутри этого кода?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Март 01, 2011, 10:45 »

int QStyle::pixelMetric ( PixelMetric metric, const QStyleOption * option = 0, const QWidget * widget = 0 )
Записан

Qt 5.11/4.8.7 (X11/Win)
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #2 : Март 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;
 
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.077 секунд. Запросов: 23.