2012-03-06 15 views
0

私はQT4を使用しているC++プロジェクトを持っています。 QT Designerを使用してフォームを作成しました。上部バーには"File -> Open Image"があります。 「Open Image」はQTデザイナによってのQObjectとして指定されています。QT UIメニューバー(トップメニュー)からファイル(画像)を開く方法

この画像を選択してそのパスを取得できるようにするには、このQObjectを押したユーザーからどうやって行くのですか?

+1

これは広い質問です。シグナル/スロットおよび標準ダイアログに関する頭の良いスタートについては、このQtサンプルをご覧ください。http://qt-project.org/doc/qt-4.8/dialogs-standarddialogs.html – Koying

答えて

3

一般的に、メニュー項目はQActionオブジェクトです。オブジェクトをアクションにすることができれば、それは良い最初のステップになります。

QActionは、ユーザによって選択されると放射される信号triggeredを有する。この信号はslotに接続できます。これはpart of an existing QObject or custom-definedです。

作成し、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 classは、ファイルの名前を取得するには( staticメソッドを介して)使用されています。ファイルタイプやその他の便利なプロパティのフィルタを設定することができます。ダイアログは、使用しているオペレーティングシステムのネイティブファイルダイアログを使用します。

connect(QObject* sender, SIGNAL, QObject* receiver, SLOT)メソッドを使用して、QAction::triggered信号を有効化するslotに接続します。

実際の実装はもちろんあなた次第ですが、これがあなたを始めることができれば幸いです。

関連する問題