Как инициировать открытие файла (изображения) из меню QT UI (верхнее меню) - PullRequest
0 голосов
/ 06 марта 2012

У меня есть проект C ++, использующий QT4. Я использовал QT Designer для создания моей формы, и в верхней панели у меня есть "File -> Open Image". Часть "Open Image" обозначена QT Designer как QObject с objectName: actionOpen_Image.

Как перейти от пользователя, нажимающего эту QObject, к выбору изображения и получению его пути, чтобы я мог загрузить его?

1 Ответ

3 голосов
/ 06 марта 2012

Как правило, пункты меню являются 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, который вы хотите активировать.

Фактическая реализация зависит от вас, конечно, надеюсь, это поможет вам начать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...