Я использую QToolButton и устанавливаю иконку.
Теперь я хочу текст "below the QToolButton"
, "Not below the icon"
,
Есть ли способ достичь этого в C ++, QT в Linux?
Я оказался в том же положении некоторое время назад, когда создавал приложение для встраиваемой системы Linux.
Я не нашел прямого решения (я искал способ добиться этого с помощью CSS).
В итоге я создал новый QWidget (используя дизайнер). Затем поместите кнопку с QLabel под ним.
Затем добавили простую статическую функцию
static void wdgCustomButton::create(const QString iconPath, const QString text)
{
// create a new button here, create some modification functions for
// text, image and optionally QStyleSheets.
// Call those here (pass the arguments)
// Then return the button
// pseudo code, (not tested):
wdgCustomButton button = new wdgCustomButton( /* could pass a parent */ );
button->setIcon( iconPath ); // function simply calls the ui->button->setIcon
button->setText( text ); // function simply calls the ui->label->setText
return button;
}
А затем добавьте эти новые QWidgets в свою панель, используя код (возможно, кто-то знает, как получить его на панели инструментов по умолчанию, но я сам пока не искал его, так как он мне никогда не был нужен).
this->menuButtons[menuBtnsCount] = wdgCustomButton::create( ":/Images/Warning.png", "Delete everything" );
this->menuButtons[menuBtnsCount]->setGeometry( QRect( /* size and position here */ ) );
this->menuButtons[menuBtnsCount]->show();
Я надеюсь, что это может дать вам идею исправить это простым способом!
Редактировать:
Извините, я забыл добавить что-то о событии клика. Событие click было главным образом тем, почему я сделал из него QWidget!
Я просто использовал функцию подключения [Я верю на всю кнопку, как: подключиться (это-> menuButtons [0], …]