Как поместить системные значки в меню?
Я запустил пример меню из 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()
.