Qt QPushbutton Иконка над текстом - PullRequest
23 голосов
/ 13 сентября 2009

Когда я создаю QPushButton со значком, он по умолчанию отображает текст справа от значка. Есть ли способ отображения текста под значком?

Ответы [ 3 ]

31 голосов
/ 14 сентября 2009

Если вы можете, проще всего использовать QToolButton вместо:

QToolButton* button = new QToolButton(this);
button->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
button->setIcon(myIcon);
button->setText("Sample text");

Если это не вариант, вы можете рассмотреть возможность создания собственноговиджет кнопки, возможно полученный из QPushButton или QAbstractButton.В этом случае вы, вероятно, (я сам не пробовал) захотите сосредоточить большую часть ваших усилий на повторной реализации paintEvent().

[Редактировать: прочитать комментарии об альтернативах, которые, вероятно, намного проще, чем эта]

7 голосов
/ 24 апреля 2013
QPushButton {
    padding: -25px 0 10px 0;
    border: 1px solid black;
    border-radius: 2px;
    background-position: center bottom;
    background-repeat: no-repeat;
    background-origin: content;
    background-image: url(":/new/resource/accept.png");
 }
QPushButton:disabled {
    background-image: url(":/new/resource/accept_b.png");
 }
5 голосов
/ 27 сентября 2011

Это невозможно с QPushButton. В QPushButton единственными вариантами размещения (LayoutDirection) являются LeftToRight, RightToLeft и Auto. Но вы можете использовать QToolButton вместо.

Используйте Qt Creator, переключитесь на панель Design , добавьте QToolButton и в правой части нижней панели вы увидите параметр 'textFormat', в котором выберите ToolButtonTextUnderIcon.

Обновление: Параметр textFormat был изменен на toolButtonStyle в последних версиях Qt Creator (4.7.0).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...