Функцию слота можно определить прямо в коннекте:
connect(butJustButton, &QPushButton::clicked, [=](){QMessageBox::information(this, "Caption", "Hello");});
Наиболее эффективный и часто применяемый- Vector (Q/STD), последовательный, элементы располагаются по порядку, трудности вызывают вставка/удаление в середину. Применение reserve эффективно.
Внутренняя структура QVector немного более сложна чем у STD.
Далее QList (ничего общего с std::list), тоже последовательный, почти всегда, автоматом является перечнем ссылок- (void*), вставка/удаление в середину проходит эффективно. Оптимален не для всех типов.
// Вариант удаления каждого элемента списка while (!list.isEmpty()) delete list.takeFirst();
Содержит события, описывающие пар-ры контекстного меню.
Виджет контекстного меню.
Может вызываться синхронно (exec()) либо асинхронно (popup())
Меню состоит из набора действий (QAction), отображается с помощью QStyle. Перечень существующий действий- метод actions()
Есть 4 типа элементов: разделители, действия- отображающие меню и виджеты, действия- выполняющие действия.
Разделители вставляются с помощью addSeparator(), подменю- addMenu(), а все остальные считаются элементами действий.
Метод addAction() возвращает *QAction, Menu становится владельцем возвращенного QAсtion.
Перед показом меню, можно задать позицию на экране, в переопределенных ф-ях (exec/popup):
exec(QCursor::pos()); exec(somewidget.mapToGlobal(QPoint(0,0))); exec(e->globalPos());
Предоставляет абстрактное действие пользовательского интерфейса
Созданные действия можно добавлять и в меню и в панели инструментов, они будут автоматически синхронизироваться (состояние/отображение).
После создания, д-е нужно добавить в необходимый виджет, затем подключить к слоту, который будет выполнять необходимое действие.
Рекомендуется создавать д-я дочерними к окну, в котором они используются