Russian Qt Forum

Qt => Вопросы новичков => Тема начата: FalseSky от Март 24, 2016, 19:19



Название: Как Qt определяет размер кнопки на различных OS?
Отправлено: FalseSky от Март 24, 2016, 19:19
Проблема такова. Есть QToolBar, с установленным setIconSize. Т.е. размер контента в кнопке мне известен (иконка 16x16). В ToolBar добавляются некоторые действия методом, addAction. Получаются QToolButton определенного размера.

Сообственно размер кнопки состоит из иконки(content), отступа(padding), границы(border) и нечто под названием margin( взято здесь: http://doc.qt.io/qt-4.8/stylesheet-customizing.html ). Т.е. полный размер кнопки определяется как content + padding + border + margin.

Сообственно мне нужно создать кнопку точно такого-же размера. Как определить эти параметры?

Я думал что как-то это можно получить через QApplication::style()->pixelMetric(), но в QStyle::PixelMetric есть только PM_ButtonMargin. Однако QApplication::style()->pixelMetric( QStyle::PM_ButtonMargin ) возвращает 6, в независимости от OS( проверял на arch + xfce и windows 7 ). Хотя на иконках явно видно что они отличаются по размеру.