Я хочу добавить значки в QMainWindow
и когда я нажму на это окно, оно должно выполнить какое-то действие, например всплывающее окно. Так что я должен использовать для icon menu
?
Вы могли бы использовать QToolButton класс для выполнения этой задачи.
Можно установить, чтобы он содержал только изображение / значок без текста.
l кнопки обычно создаются, когда новые экземпляры QAction создаются с помощью QToolBar :: addAction (), или существующие действия добавляются на панель инструментов с помощью QToolBar :: addAction (). Также можно создавать кнопки инструментов так же, как и любой другой виджет, и размещать их вместе с другими виджетами в макетах.
Значок кнопки инструмента установлен как QIcon. Это позволяет указывать разные растровые изображения для отключенного и активного состояния. Отключенное растровое изображение используется, когда функция кнопки недоступна. Активное растровое изображение отображается, когда кнопка автоматически поднимается, потому что указатель мыши находится над ней.
Внешний вид и размер кнопки регулируются с помощью setToolButtonStyle () и setIconSize (). При использовании внутри QToolBar в QMainWindow, кнопка автоматически подстраивается под настройки QMainWindow (см. QMainWindow :: setToolButtonStyle () и QMainWindow :: setIconSize ()). Вместо значка кнопка инструмента может также отображать символ стрелки, указанный с помощью arrowType.
Итак, вы бы использовали эти методы:
QAction * QToolBar :: addAction (const QIcon & icon, const QString & текст)
Создает новое действие с указанным значком и текстом. Это действие добавляется в конец панели инструментов.
а также
toolButtonStyle: Qt :: ToolButtonStyle
Это свойство определяет, будет ли кнопка инструмента отображать только значок, только текст или текст рядом с / под значком.
По умолчанию используется Qt :: ToolButtonIconOnly.
Чтобы стиль кнопок инструментов соответствовал системным настройкам (доступным в средах рабочего стола GNOME и KDE), установите для этого свойства значение Qt :: ToolButtonFollowStyle.
QToolButton автоматически соединяет этот слот с соответствующим сигналом в QMainWindow, в котором он находится.
Как видите, по умолчанию используется только значок.
Других решений пока нет …