Я создал простой черный ящик 10х10 и добавил его в QToolButton
следующее:
QIcon minIcon;
minIcon.addFile("c:/tmp/black10x10.png");
minButton = new QToolButton;
minButton->setIcon(minIcon);
Тем не менее, он появляется на экране смещенным влево (изображение увеличено для удобства):
Некоторые косоглазие в Gimp сказали мне, что серая область слева увеличена на 56 пикселей, а серая область справа — 68. Это смещение очень заметно даже без зума — именно так я и заметил. Итак, как мне отцентрировать эту иконку?
Постскриптум Попробовал с помощью QPushButton
без текста. Тот же эффект.
Возможно, сейчас немного поздно, но я наткнулся на ту же проблему и нашел следующий фрагмент кода в QT qstylesheet.cpp
case CT_ToolButton:
if (rule.hasBox() || !rule.hasNativeBorder() || !rule.baseStyleCanDraw())
sz += QSize(3, 3); // ### broken QToolButton
Это увеличило бы ваш значок четного размера до нечетного размера и, следовательно, не по центру. Я не уверен, почему есть дополнение 3, но комментарий предполагает, что это исправление для чего-то …
К сожалению, это не решает проблему, а просто объясняет ее источник. Но это может помочь кому-то найти лучшее решение, чем «сделать все ваши иконки нечетными по размеру».
Других решений пока нет …