Russian Qt Forum
Ноябрь 24, 2024, 23:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Стандартные иконки  (Прочитано 5257 раз)
abrahadabra
Гость
« : Март 07, 2016, 17:05 »

Добрый день.

Изучаю сейчас построение меню и панелей инструментов.
Есть класс QAction, который используется при создании кнопки на панели инструментов. Он принимает файл иконки.
Но по уму для большинства стандартных действий (таких как «Новый докуемнт», «Копировать», «Вставить», «Сохранить») есть стандартные иконки в ОС.

Как можно использовать именно эти стандартные иконки в своих кнопках?
Записан
Smogg
Гость
« Ответ #1 : Март 07, 2016, 17:57 »

Qt - кроссплатформен. "Стандартные" же иконки - даже для самой ОСи не стандартные, а исключительно дефолтные. Так что прикручивай ОСьное АПИ, чтоб проверить на существование дефолтных иконок.
Записан
abrahadabra
Гость
« Ответ #2 : Март 07, 2016, 18:02 »

То есть, я хочу чего-то странного, а делать отдельные файлы иконок для каждого приложения — это и есть правильный и прямой путь?
Записан
Smogg
Гость
« Ответ #3 : Март 07, 2016, 18:38 »

В парадигме Qt'a - да. Он наоборот настаивает на стилизации приложения кагрится онзефлай. Хоть и заявляется, что в разных средах приложение будет выглядеть нативно, но на самом деле, Qt для того, чтоб в разных средах приложение выглядело одинаково, а имитация под нативность - чисто чтоб была какая-то дефолтная тема.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #4 : Март 07, 2016, 18:40 »

на самом деле можно достать дефолтные иконки, см. QStyle::StandardPixmap
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
abrahadabra
Гость
« Ответ #5 : Март 07, 2016, 20:54 »

Спасибо!
Да, вот такая конструкция сработала:
Код:
newAct = new QAction(QIcon(QApplication::style()->standardIcon(QStyle::SP_FileIcon)), tr("&New"), this);

Но с другой стороны, если попробовать перечисленные здесь варианты, то волей-неволей согласишься с мыслью, что лучше самостоятельно позаботиться об иконках.
Записан
Smogg
Гость
« Ответ #6 : Март 09, 2016, 11:58 »

С учетом всего "зоопарка" как популярных ОСей, так и их так называемых "сборок", я бы не стал рисковать полагаться на "дефолтные" иконки)
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #7 : Март 09, 2016, 12:42 »

Странно, куда делись все гуру. Советуют же всякий бред. Тыц. Там и фоллбэк предусмотрен и всё, что надо. Только кофе в постель не приносит.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #8 : Март 09, 2016, 12:52 »

Цитировать
Note: By default, only X11 will support themed icons. In order to use themed icons on Mac and Windows, you will have to bundle a compliant theme in one of your themeSearchPaths() and set the appropriate themeName().
а где эти темы брать для не-иксов?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
abrahadabra
Гость
« Ответ #9 : Март 09, 2016, 14:36 »

Странно, куда делись все гуру. Советуют же всякий бред. Тыц. Там и фоллбэк предусмотрен и всё, что надо. Только кофе в постель не приносит.

А вот это было найдено и опробовано в первую очередь, ещё до обращения на форум. Но вот совершенно непонятно, что делать с темами. То есть, вот там такое замечание:
Цитировать
Note: By default, only X11 will support themed icons. In order to use themed icons on Mac and Windows, you will have to bundle a compliant theme in one of your themeSearchPaths() and set the appropriate themeName().
… и, честно говоря, вообще непонятно, что всё это значит.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 23.