Как поместить системные значки в меню?

Я запустил пример меню из Qt, и в меню нет значков, только текст. Большинство приложений (например, pcmanfm и caja из Ubuntu) имеют похожие значки, поэтому я полагаю, что они являются общесистемными и не зависят от конкретного приложения. Как я могу поставить значки в пунктах меню? Пример кода будет интересным.

1 ответ

Решение

Для получения иконок систем необходимо использовать метод QIcon::fromTheme()

Пример:

newAct = new QAction(tr("&New"), this);
newAct->setIcon(QIcon::fromTheme("document-new"));

Qt использует в качестве бэкенда значок freedesktop, у него есть правило в именах, обновленный список которых можно найти по следующей ссылке

В QIcon::fromTheme()функция, найденная в другом ответе, к сожалению, не переносится на Mac или Windows. Возможно, вам повезет больше, если вы воспользуетесь QStyle::standardIcon().

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