Hatena::ブログ(Diary)

Qtプログラミング日記

2012-02-05

[] Macだと arguments が渡ってこない 11:48  Macだと arguments が渡ってこないを含むブックマーク

アプリケーションにファイルをDrag&Dropする場合、Windowsだと以下のコードでパラメータを取得できるのですが、Macだと何も渡ってこないようです。MacOSネイティブAPIを呼ぶ必要がありそうで大変そうです。何か良い方法はないものでしょうか……。

    QStringList args = qApp->arguments();
    for (int i=1; i<args.size(); i++)
    {
      QString str = args.at( i );
      fileOpen( str );
    }

補足

Macの場合、Finderからファイルを送る・関連付けて開く場合ですね。D&Dは出来てなかった…。

Kenji SugitaKenji Sugita 2012/02/15 11:29 QApplicationのevent()を再実装し、QEvent::FileOpenを捕まえて、QFileOpenEvent::file() を見ます。

QtCoderQtCoder 2012/02/16 00:46 > QEvent::FileOpenを捕まえて

おおぉ、ありがとうございます、できました!

http://www.crossplatform.ru/?q=node/298
http://qtcenter.org/wiki/index.php?title=Opening_documents_in_the_Mac_OS_X_Finder

それはそうと、以前コメント頂いた kenji さんって、Kenji Sugita さんだったんですね。「入門Qt4プログラミング」にはお世話になっております、ありがとうございます(涙)。

Kenji SugitaKenji Sugita 2012/02/24 14:59 *.app/Contents/Info.plistにCFBundleTypeExtensionsなどを追加されましたか。

QtCoderQtCoder 2012/02/27 23:04 恥ずかしながら追加していませんでした……ありがとうございます、試してみます! (なるほど、qmakeで指定のInfo.plistを設定できるんですね>http://doc.qt.nokia.com/qq/qq12-mac-events.html

トラックバック - http://d.hatena.ne.jp/QtCoder/20120205/1328669338