Я использую QToolButton, и я установил значок. Теперь я хочу Текст "below the QToolButton"
, "Not below the icon"
. Есть ли способ достичь этого в C++, QT в Linux?Как установить текст под QToolButton в QT не ниже значка
ответ
Я оказался в таком же положении некоторое время назад, когда делал приложение для встроенной системы 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. Событие click было главным образом, почему я сделал QWidget из этого! Я просто использовал функцию подключения [Я верю на всю кнопку: connect (this-> menuButtons [0], ...]