Как установить текст под QToolButton в QT, а не под значком

Я использую QToolButton и устанавливаю иконку. Теперь я хочу текст "below the QToolButton", "Not below the icon", Есть ли способ достичь этого в C++,QT в Linux?

1 ответ

Решение

Я оказался в том же положении некоторое время назад, когда создавал приложение для встраиваемой системы 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], ...]

Другие вопросы по тегам