Russian Qt Forum
Июля 02, 2025, 04:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Стандартные иконки  (Прочитано 5539 раз)
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.022 секунд. Запросов: 20.