Как правило, пункты меню являются QAction объектами - если вы можете сделать свой объект действием, это будет хорошим первым шагом.
QAction
s имеют сигнал срабатывает , который испускается при выборе пользователем.Этот сигнал может быть подключен к slot
, который может быть частью существующего QObject
или пользовательским .
Для создания и объекта с slot
, следующий примерможет быть полезно:
class MyClass : QObject{
Q_OBJECT //<---macro which flags the class for the Meta-Object Compiler(moc) tool
public:
MyClass(QObject* parent=):QObject(parent){}
public slots: //<--- also for the moc tool to handle
void mySlot(){
//custom behavior
QString fileName = QFileDialog::getOpenFileName(/*args*/);
}
};
Здесь класс QFileDialog используется (с помощью метода static
) для получения имени файла.Вы можете установить фильтры для типов файлов и других полезных свойств, и в этом диалоговом окне будет использоваться собственный диалог для файлов любой операционной системы, с которой вы работаете.
Используйте метод connect(QObject* sender, SIGNAL, QObject* receiver, SLOT)
для подключения QAction::triggered
сигнал slot
, который вы хотите активировать.
Фактическая реализация зависит от вас, конечно, надеюсь, это поможет вам начать.